选择下拉选项
Selecting a drop down option
我正在模拟移动 phone 浏览器并尝试 select 下拉项。
我正在使用 css selector 来查找组合框,当我检查 css selector 在开发人员工具中找到但不在我的代码中时
List<WebElement> linkElements = driver.findElements(By
.cssSelector(".show-deals-wrapper select"));
for (WebElement element : linkElements) {
if (element.isDisplayed()
&& ("Pay Monthly").equals(element.getText())) {
element.click();
break;
}
}
网络是 https://www.o2.co.uk/shop 移动版。
我真的是 Selenium 的新手,学习了一点。对不起,如果问题这么简单。
非常感谢。
问候
这就是我使用 webdriver 处理选择的方式。我希望这有帮助。我也在使用 python
Select(driver.find_element_by_css_selector('.show-deals-wrapper.select')).select_by_visible_text("Pay Monthly")
您可以使用 javascript 使元素首先可见。然后照原样做你的工作,最后让那个元素再次不可见。请参阅下面的代码部分:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('elementID').style.display='block'");
Select select = new Select(driver.findElement(elementID));
select.selectByIndex(pos);
js.executeScript("document.getElementById('elementID').style.display='none'");
我想这会对你有所帮助。
你也可以这样做:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,300)", "");
driver.findElement(By.id("dataFilterSelectSelectBoxItArrowContainer")).click();
List<WebElement> linkElements = driver.findElements(By
.cssSelector(" #dataFilterSelectSelectBoxItOptions>li>a"));
System.out.println("size is "+linkElements.size());
for (WebElement element : linkElements) {
System.out.println("size is "+element.getText());
if (("ur text").equals(element.getText())) {
element.click();
break;
}
}
这将点击你想要的关税类型。
我正在模拟移动 phone 浏览器并尝试 select 下拉项。 我正在使用 css selector 来查找组合框,当我检查 css selector 在开发人员工具中找到但不在我的代码中时
List<WebElement> linkElements = driver.findElements(By
.cssSelector(".show-deals-wrapper select"));
for (WebElement element : linkElements) {
if (element.isDisplayed()
&& ("Pay Monthly").equals(element.getText())) {
element.click();
break;
}
}
网络是 https://www.o2.co.uk/shop 移动版。 我真的是 Selenium 的新手,学习了一点。对不起,如果问题这么简单。
非常感谢。 问候
这就是我使用 webdriver 处理选择的方式。我希望这有帮助。我也在使用 python
Select(driver.find_element_by_css_selector('.show-deals-wrapper.select')).select_by_visible_text("Pay Monthly")
您可以使用 javascript 使元素首先可见。然后照原样做你的工作,最后让那个元素再次不可见。请参阅下面的代码部分:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('elementID').style.display='block'");
Select select = new Select(driver.findElement(elementID));
select.selectByIndex(pos);
js.executeScript("document.getElementById('elementID').style.display='none'");
我想这会对你有所帮助。
你也可以这样做:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,300)", "");
driver.findElement(By.id("dataFilterSelectSelectBoxItArrowContainer")).click();
List<WebElement> linkElements = driver.findElements(By
.cssSelector(" #dataFilterSelectSelectBoxItOptions>li>a"));
System.out.println("size is "+linkElements.size());
for (WebElement element : linkElements) {
System.out.println("size is "+element.getText());
if (("ur text").equals(element.getText())) {
element.click();
break;
}
}
这将点击你想要的关税类型。