我在更新新的selenium 3.0 betajar文件后使用以下代码。不过,在早期版本的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");

09-10 07:19
查看更多