我一直在尝试在雅虎注册页面(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毫秒
答案 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
类。
你必须使用我们自己的算法来处理这个问题。