我正在模拟手机浏览器并尝试选择下拉项目。 当我检查开发人员工具中的css选择器是否找到而不是在我的代码中时,我使用css选择器来查找组合框
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中真的很新,学到了一点点。对不起,如果问题很简单。
非常感谢提前。 此致
答案 0 :(得分:0)
这就是我用webdriver处理选择的方法。我希望这有帮助。我也在使用python
Select(driver.find_element_by_css_selector('.show-deals-wrapper.select')).select_by_visible_text("Pay Monthly")
答案 1 :(得分:0)
您可以先使用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'");
我认为这会对你有帮助。
答案 2 :(得分:0)
你可以像下面那样:
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;
}
}
这将点击您想要的关税类型。