Java 将jar文件更新到selenium 3.0后无法选择下拉选项

Java 将jar文件更新到selenium 3.0后无法选择下拉选项,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,在更新新的selenium 3.0 beta jar文件之后,我正在使用以下代码。然而,在早期版本的selenium中,它工作得非常好 我更新了,因为它给出了错误: org.openqa.selenium.NoSuchElementException:找不到索引为1的选项 有关此错误的文档,请访问: 构建信息:版本:“未知”,版本:“2aa21c1”,时间:“2016-08-02 14:59:43-0700” 系统信息:主机:'GUR-ITD-8C',ip:'172.21.45.117',os.

在更新新的selenium 3.0 beta jar文件之后,我正在使用以下代码。然而,在早期版本的selenium中,它工作得非常好

我更新了,因为它给出了错误:

org.openqa.selenium.NoSuchElementException:找不到索引为1的选项

有关此错误的文档,请访问: 构建信息:版本:“未知”,版本:“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.031' 驱动程序信息:驱动程序。版本:未知


我不确定在使用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");

分享你的下拉列表HTML以及??尝试将选项大小打印为System.out.printlnLineOfBusiness.getOptions.size;并让我们知道结果..:选择业务线HWW销售EAN销售HWW电子邮件A2A电子邮件A2A电话CDS电子邮件CDS电话A2A跟进团队CDS跟进团队此系统的输出是什么。输出。打印业务线。获取选项。大小;??您是否尝试选择使用可视文本作为业务线的选项。selectByVisibleTextHWW Sales;??我使用了System.out.printlinlineofbusiness.getOptions.size;它在控制台10中显示了大小,但有相同的错误。它对我有效,谢谢,但我认为只有在我必须选择其他人,然后必须使用更多JavascriptExecutor的情况下,它才适用于业务线。对吗?是的,如果没有使用JavaScript对于实际的自动化用户测试是不好的,你可以考虑它,但是你可以把它当作一个选项,如果没有什么可以继续的话…谢谢:谢谢你的帮助。是的,我知道我会努力解决这个错误,我会用JavaScript执行器。
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");
 WebElement select = driver.findElement(By.xpath(".//* 
 [@id='App']/div/div[3]/div/div/div[2]/div/form/div[2]/div[2]/div/select"));

 List<WebElement> allOptions = select.findElements(By.tagName("option"));

for (WebElement option : allOptions)
{
    if (examboard.equals("Select") && option.getText().equals("Select") )
    {
        new Select(By.xpath("//select").findElement(driver)).selectByVisibleText(allOptions.get(0).getText());
        System.out.println("Name of the exam board is -->" + examboard);
        Utils.waitForElement(1000);
    }
}