我在更新新的selenium 3.0 beta
jar文件后使用以下代码。不过,在早期版本的selenium中,它工作得很好。
我更新了错误信息:
org.openqa.selenium.nosuchelementexception:找不到索引为1的选项
有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html
构建信息:版本:“未知”,版本:“2AA21C1”,时间:“2016-08-02 14:59:43-0700”
系统信息:主机:'gur-itd-8c',IP:'172.21.45.117',OS.name:'Windows 7',OS.arch:'AMD64',OS.version:'6.1',Java.version:'1.8.0\u 31'
驱动程序信息:driver.version:未知
expedia.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Select LineOfBusiness = new Select(expedia.findElement(By.id("lineOfBusiness")));
LineOfBusiness.selectByIndex(1);
Assert.assertEquals(LineOfBusiness.getFirstSelectedOption().getText(), "HWW Sales");
最佳答案
我不确定在您使用Select
类的情况下有什么问题,但是如果您想要一个替代的解决方案来摆脱这个错误,您可以尝试使用JavascriptExecutor
如下:
public static String selectByIndex(WebDriver driver, WebElement select, int index) {
String javaScript = "var select = arguments[0]; "
+ "select.options[arguments[1]].selected = true;"
+ "return select.selectedOptions[0].text";
return (String) ((JavascriptExecutor) driver).executeScript(javaScript, select, index);
}
WebElement select = expedia.findElement(By.id("lineOfBusiness"));
Assert.assertEquals(selectByIndex(expedia, select, 1), "HWW Sales");