选择下拉选项

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;
    }

}

这将点击你想要的关税类型。