使用selenium WebDriver查找元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用selenium WebDriver查找元素相关的知识,希望对你有一定的参考价值。

我试图在列表中使用查找元素,但我收到错误:

org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应该是“select”但是“li”

我要找的元素在列表中:

<span unselectable="on" class="k-input">[SELECT2]</span>

该元素位于:

<li tabindex="-1" role="option" unselectable="on" class="k-item" data-index="2">ARKANSAS</li>

我试图使用以下java代码找到它:

driver.findElement(By.cssSelector("span.k-input")).click(); Thread.sleep(1000); //it works
new Select(driver.findElement(By.xpath("//*[@id="DriverLicState_listbox"]/li[3]"))); // error

我试图在列表中选择一个元素但它似乎也不起作用。我该怎么做呢?

答案

Select类旨在处理“select”元素。您显示的一小部分html代码表明这是一种自定义选择控件,构建为级联列表。您可能必须编写自己的selenium代码来与它进行交互...具有适当方法的CustomSelect类。

另一答案

这里有两种解决这个问题的方法:

我使用Selenium IDE查看更多目标选项。

选项1:xpath:idRelative

driver.findElement(By.xpath("//*[@id="DriverLicState_listbox"]/li[3]")).click();

选项2:xpath:位置

driver.findElement(By.xpath("//body/div[2]/div/ul/li[3]")).click();

以上是关于使用selenium WebDriver查找元素的主要内容,如果未能解决你的问题,请参考以下文章

Selenium Webdriver 在子元素中查找元素

Selenium WebDriver - 使用 cssSelector 和第 n 个子元素查找元素

如何使用Selenium C#WebDriver查找所有父元素?

如何在 java 中使用 selenium webdriver 查找特定的表元素?

使用 Java 和 Selenium WebDriver 在表单和 iframe 中查找元素

按文本查找元素并获取xpath - selenium webdriver junit