Selenium 2의 선택/드롭다운 옵션 선택 방법
셀레늄 1 코드를 셀레늄 2로 변환하고 있는데, 드롭다운 메뉴에서 라벨을 선택하거나 선택한 값을 얻을 수 있는 쉬운 방법을 찾을 수 없습니다.셀레니엄 2에서 어떻게 하는지 아세요?
Selenium 1에서는 동작하지만2에서는 동작하지 않는2개의 스테이트먼트를 다음에 나타냅니다.
browser.select("//path_to_drop_down", "Value1");
browser.getSelectedValue("//path_to_drop_down");
Selenium 문서의 웹 드라이버와 Select 클래스의 javadoc을 사용하여 폼을 입력하는 방법에 대한 섹션을 참조하십시오.
라벨을 기반으로 옵션을 선택하려면:
Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
select.deselectAll();
select.selectByVisibleText("Value1");
처음 선택한 값을 가져오려면:
WebElement option = select.getFirstSelectedOption()
driver.findElement(By.id("id_dropdown_menu")).click();
driver.findElement(By.xpath("xpath_from_seleniumIDE")).click();
루비 단위로 계속 사용할 수 있습니다.
module Selenium
module WebDriver
class Element
def select(value)
self.find_elements(:tag_name => "option").find do |option|
if option.text == value
option.click
return
end
end
end
end
end
값을 선택할 수 있습니다.
browser.find_element(:xpath, ".//xpath").select("Value")
사용 방법:
selenium.select("id=items","label=engineering")
또는
selenium.select("id=items","index=3")
Janderson에 의해 위에 게시된 것과 유사한 옵션은 단순하게 를 사용하는 것입니다.셀레늄 2의 GetAttribute 메서드.이를 통해 특정 값이나 레이블이 있는 항목을 검색할 수 있습니다.이 값을 사용하여 요소에 레이블, 스타일, 값 등이 있는지 확인할 수 있습니다.일반적인 방법은 원하는 항목을 찾아 선택할 때까지 드롭다운 항목을 반복하는 것입니다.인 C#
int items = driver.FindElement(By.XPath("//path_to_drop_Down")).Count();
for(int i = 1; i <= items; i++)
{
string value = driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).GetAttribute("Value1");
if(value.Conatains("Label_I_am_Looking_for"))
{
driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).Click();
//Clicked on the index of the that has your label / value
}
}
다음과 같이 할 수 있습니다.
public void selectDropDownValue(String ValueToSelect)
{
webelement findDropDownValue=driver.findElements(By.id("id1")) //this will find that dropdown
wait.until(ExpectedConditions.visibilityOf(findDropDownValue)); // wait till that dropdown appear
super.highlightElement(findDropDownValue); // highlight that dropdown
new Select(findDropDownValue).selectByValue(ValueToSelect); //select that option which u had passed as argument
}
이 메서드는 드롭다운에 대해 선택한 값을 반환합니다.
public static String getSelected_visibleText(WebDriver driver, String elementType, String value)
{
WebElement element = Webelement_Finder.webElement_Finder(driver, elementType, value);
Select Selector = new Select(element);
Selector.getFirstSelectedOption();
String textval=Selector.getFirstSelectedOption().getText();
return textval;
}
한편.
문자열 textval=Selector.getFirstSelectedOption();
element.getText();
드롭다운의 모든 요소를 반환합니다.
Selenium WebDriver에서 선택
Selenium WebDriver의 'Select' 클래스는 드롭다운에서 옵션을 선택 및 선택 취소하는 데 사용됩니다.Select type 객체는 드롭다운 webElement를 파라미터로 컨스트럭터에 전달하여 초기화할 수 있습니다.
WebElement testDropDown = driver.findElement(By.id testingDropdown"); 드롭다운 = new Select(testDropDown)를 선택합니다.
드롭다운에서 옵션 선택
드롭다운에서 옵션을 선택하는 방법에는 세 가지가 있습니다.
- 선택 기준[Index] : 인덱스를 기반으로 0부터 시작하는 옵션을 선택합니다.
드롭 다운선택 기준색인(3);
- [select By Value] : [ value ]속성에 따라 옵션을 선택합니다.
드롭 다운select By Value("데이터베이스");
- 선택 표시[Text] : 옵션보다 텍스트에 따라 옵션을 선택합니다.
드롭 다운select ByVisibleText("데이터베이스 테스트");
Selenium에서 Select class in Select class implement select tag 메서드를 사용하여 드롭다운에서 특정 값을 선택합니다.옵션 선택 및 선택 해제를 위한 도우미 메서드를 제공합니다.
WebElement dropdownlist = driver.findElement(By.xpath(locator));
Select listbox = new Select(dropdownlist);
예시와 함께 클래스 선택 메서드 사용:
selectByIndex(int index): Select the option at the given index.
listbox.selectByIndex(2);
selectByVisibleText(java.lang.String text): Select all options that display text matching the argument
listbox.selectByVisibleText(“Date”);
자세한 내용은 아래 링크를 참조하십시오.
드롭다운에서 값을 선택하는 코드입니다.
selectlocator 값은 xpath 또는 드롭다운 상자의 이름이 되며 optionLocator 값은 드롭다운 상자에서 선택할 수 있습니다.
public static boolean select(final String selectLocator,
final String optionLocator) {
try {
element(selectLocator).clear();
element(selectLocator).sendKeys(Keys.PAGE_UP);
for (int k = 0; k <= new Select(element(selectLocator))
.getOptions().size() - 1; k++) {
combo1.add(element(selectLocator).getValue());
element(selectLocator).sendKeys(Keys.ARROW_DOWN);
}
if (combo1.contains(optionLocator)) {
element(selectLocator).clear();
new Select(element(selectLocator)).selectByValue(optionLocator);
combocheck = element(selectLocator).getValue();
combo = "";
return true;
} else {
element(selectLocator).clear();
combo = "The Value " + optionLocator
+ " Does Not Exist In The Combobox";
return false;
}
} catch (Exception e) {
e.printStackTrace();
errorcontrol.add(e.getMessage());
return false;
}
}
private static RenderedWebElement element(final String locator) {
try {
return (RenderedWebElement) drivers.findElement(by(locator));
} catch (Exception e) {
errorcontrol.add(e.getMessage());
return (RenderedWebElement) drivers.findElement(by(locator));
}
}
고마워요.
레하
언급URL : https://stackoverflow.com/questions/6430462/how-to-select-get-drop-down-option-in-selenium-2
'programing' 카테고리의 다른 글
VueJs2 확인란 v-bind: true-value가 작동하지 않음 (0) | 2022.09.06 |
---|---|
카운트(*)로 필터링하시겠습니까? (0) | 2022.09.06 |
PHP MYSQL - 열 이름을 사용하지 않고 자동 증분 필드를 사용하여 에 삽입합니다. (0) | 2022.09.06 |
오류: gem 네이티브 확장을 빌드하지 못했습니다. mysql2를 설치하는 동안 오류가 발생했습니다. (0) | 2022.09.06 |
Python에서 문자열이 반복되는지 어떻게 알 수 있습니까? (0) | 2022.09.06 |