无法使用selenium webdriver在下拉列表中选择不可见的值

时间:2014-06-28 21:12:03

标签: selenium drop-down-menu selenium-webdriver

我一直在尝试在雅虎注册页面(https://edit.yahoo.com/registration)上选择以下值:国家/地区下拉列表,用于选择国家/地区代码。

使用的代码:

new Select(driver.findElement(By.id("month"))).selectByVisibleText("July");
        driver.findElement(By.id("selected-country-code-2")).click();
                new Select(driver.findElement(By.id("country-code-rec"))).selectByVisibleText("Venezuela (+58)");

我一直收到以下错误

  

org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与之交互   命令持续时间或超时:16毫秒

1 个答案:

答案 0 :(得分:0)

我可以在代码中看到一些缺陷。

为了选择月份,日期,年份,这里的代码是有效的,在Firefox驱动程序上测试过。

@org.junit.Test
public void testGoogle()  throws Exception
{
    driver.get("https://edit.yahoo.com/registration");

    Thread.sleep(3000);

    WebElement month = driver.findElement(By.id("month"));
    WebElement day = driver.findElement(By.id("day"));
    WebElement year = driver.findElement(By.id("year"));

    Select monthDropDown = new Select(month);
    Select dayDropDown = new Select(day);
    Select yearDropDown = new Select(year);

    monthDropDown.selectByVisibleText("July");
    dayDropDown.selectByVisibleText("6");
    yearDropDown.selectByVisibleText("2012");

}

请注意,您尝试选择的国家/地区代码不是select html代码,而是div代码。所以你不能在这里使用来自Selenium的Select类。

你必须使用我们自己的算法来处理这个问题。