当前位置: 首页 > 知识库问答 >
问题:

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

盛城
2023-03-14

更新新的selenium 3.0 betajar文件后,我使用以下代码。然而在硒的早期版本中,它工作得很好。

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

组织。openqa。硒。NoTouchElementException:找不到索引为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_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");

共有2个答案

任文乐
2023-03-14
 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);
    }
}
宗项禹
2023-03-14

我不确定您使用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");
 类似资料:
  • 嗨,我一直在做量角器测试,我的测试有问题。我的ionic应用程序确实有一个具有模型名称的下拉列表,我试图使用模型名称访问它,它可以工作,但问题是它无法选择我需要从该下拉列表选项中选择的确切选项。它只选择第一个?我这样写了量角器语法。 但是这段代码选择的不是值59,而是值0,这是默认选项。有人能帮我吗?

  • 问题内容: Selenium Select 类具有3种不同的选项选择方法: selectByIndex selectByValue selectByVisibleText 现在,我遇到一种情况,我想通过一些 部分 显示在选项可见文本之一中的文本来选择一个选项(不想让自己暴露在整个文本中)。 例如: 我只想通过提供“ DOLLAR”来选择此选项,例如: 您将如何有效地实施它? 问题答案: 您可以尝试

  • 问题内容: Selenium Select 类具有3种不同的选项选择方法: selectByIndex selectByValue selectByVisibleText 现在,我遇到一种情况,我想按 部分 显示在选项可见文本之一中的某些文本选择一个选项(不想让自己暴露于整个文本中)。 例如: 我只想通过提供“ DOLLAR”来选择此选项,例如: 您将如何有效实施它? 问题答案: 您可以尝试这样的

  • 我有一个带有组合框的xaml。由于某种原因,我在那里有一些项目,我不能选择它们,当我选择一个项目时,它通常不允许我更改我的选择,如果它更改了,它仅适用于某些值。这是代码: 我希望我写的很清楚,因为我把它从电脑复制到了手机上。基本上,我有所有的用户,并按部门对他们进行分类。用户只能看到他所在部门的文档,并且可以选择绑定词典中可用的文档。如果不可用,组合框中的项目将为红色且不可检查。这个管用。唯一没有

  • 问题内容: 我想创建一个下拉菜单,其中包含图像而不是文本作为选项。我在此处进行了一些Google搜索,然后在Stack Overflow上进行了搜索,通常给出的答案是使用jQuerycombobox。 在我看来,这种解决方案的问题在于您必须提供文本。看起来图像只是左侧文字的图标。如果我错了,请纠正我,但是此解决方案将无法解决我要尝试的工作- 完全用图像替换文本。 我正在尝试做的事情的一些背景知识-

  • 我正在创建一个演示站点的实践测试,然而,我在从下拉列表中选择一个值时遇到了一个问题,我无法找到元素,然而,它是正确的ID,我也尝试了ID和CSS选择器,但没有运气:(我将在下面发布HTML和Selenium代码: HTML Ruby代码: