【问题标题】:Selenium Java - Error- org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been "select" but was "input"Selenium Java - 错误 - org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应该是“选择”但是“输入”
【发布时间】:2015-02-02 05:55:48
【问题描述】:

我是 java 和 selenium 的新手。我正在尝试在我的一个项目网站上学习自动化

但我被困在下拉菜单中。 下面是下拉菜单的 HTML。

 <td>
<select name="NAV_LOB_FLD.XMFRAMEWORK.XMCONTROL.1" size="1">
<option value="" selected="selected">Select Business Line</option>
<option value="X01">Auto</option>
<option value="J57">Businessowners(ISO)</option>
<option value="X22">Dwelling Fire</option>
<option value="X26">Farmowners</option>
<option value="X24">Homeowners</option>
<option value="X44">Umbrella - Personal Lines</option>
<option value="J34">Watercraft</option>
</select></td>

我的代码是

  Select SelectLOB = new Select(driverIE.findElement(By.name("NAV_LOB_FLD.XMFRAMEWORK.XMCONTROL.1")));
  SelectLOB.selectByValue("Auto");

我无法弄清楚为什么会出现此错误。此名称只有一个元素。我知道它说的是标签输入而不是选择。但事实并非如此。

请帮忙。提前致谢。

【问题讨论】:

  • driverIE.findElement(By.name("NAV_LOB_FLD.XMFRAMEWORK.XMCONTROL.1")).getTagName() - 它返回“输入”还是选择?要么您有超过 1 个具有相同名称的元素,要么我们必须“等待”直到元素出现?

标签: java selenium-webdriver


【解决方案1】:

感谢@Eugene @Saifur。我尝试了 value X01 和不同的元素技术(Xpath,css),但它在 IE 8 或 11 中不起作用,并且此应用程序仅支持 IE

我创建了 HTML 文件并在 firefox 中尝试了它的工作。

然后我尝试了

WebElement select = driverIE.findElement(By.tagName("select"));
        System.out.println(select);
        List<WebElement> allOptions = select.findElements(By.tagName("option"));
        for (WebElement option : allOptions) {
            System.out.println(String.format("Value is: %s", option.getAttribute("value")));
            option.click();}

它从下拉列表中提供了我想要的值。

所以我修改了我的代码

new Select(driverIE.findElement(By.tagName("select"))).selectByVisibleText("Auto");

我知道这不是正确的解决方案,而是临时解决方法。谢谢。

【讨论】:

  • 太棒了!很高兴知道。为找到自己的解决方案点赞
【解决方案2】:

你正在使用

SelectLOB.selectByValue("Auto"); 

但是正确的代码应该是

SelectLOB.selectByValue("X01");

请查看是否可以解决问题。它适用于我的 chrome 驱动程序。

【讨论】:

    【解决方案3】:

    @Eugene 是对的,还有许多其他因素可以直接影响这个类,我不得不多次处理 wait 和不同的查找元素技术。如果@Eugene 的回答不起作用,请查看我的回答here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多