选择下拉选项

时间:2016-04-20 10:10:26

标签: selenium mobile selenium-webdriver selenium-chromedriver

我正在模拟手机浏览器并尝试选择下拉项目。 当我检查开发人员工具中的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中真的很新,学到了一点点。对不起,如果问题很简单。

非常感谢提前。 此致

3 个答案:

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

}

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