java - 使用 Selenium(Java),当下拉列表元素的可识别属性有限时,如何从下拉列表中选择一个值?

标签 java selenium drop-down-menu selenium-webdriver webdriver

我正在尝试使用 Selenium 从下拉列表中选择一个值,并且我已经尝试了所有可能的方法(据我所知),但徒劳无功。 请帮我在这里找到合适的方法。

以下是 HTML 代码,供引用:

<select name="list" onchange="this.disabled=true;if(this.options[selectedIndex].value == '')this.disabled=false;else optionselect(this);" onfocus="hint('')">

而且,这些是我尝试过的方法。

方法 1:

new Select(driver.findElement(By.xpath("xpath"))).selectByVisibleText("Text*");
new Select(driver.findElement(By.name("list"))).selectByVisibleText("Text");

方法2:(我尝试使用所有可能的方法通过名称、abs xpath、rel xpath、cssSelector等来识别下拉元素,但似乎没有任何方法可以识别该元素)

Select sel = new Select(element);
sel.selectByValue("Value");
Thread.sleep(5000);

方法 3:

Select sel = new Select(element);
sel.selectByIndex(11);
Thread.sleep(5000);

方法 4:

Select select = new Select(driver.findElement(By.name("list")));
select.selectByVisibleText("Text");

我猜测上述所有方法的问题在于识别下拉元素。但我真的不确定这里出了什么问题。

最佳答案

尝试以下操作。

WebElement dd= driver.findElement(By.xpath("//select[@name='list']"));
Select s=new Select(dd);
s.selectByIndex(1);

关于java - 使用 Selenium(Java),当下拉列表元素的可识别属性有限时,如何从下拉列表中选择一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31515145/

相关文章:

javax.servlet.ServletException : No action config found for the specified url

Idea IntelliJ Community Edition 的 Java 代码覆盖率工具

java - 了解 Java 中compareTo()方法的语法

selenium - Chromedriver : cannot execute binary file

java - 下拉列表中的 JSF 树

java - 鉴于已检查的错误不会在我的程序中抛出,这个未经检查的包装器是否可以接受

python-3.x - 在 python 中使用 selenium 禁用 webdriver 的控制台输出

java - 找不到类 JUNIT org.junit.runner.JUnitCore

angularjs - 停止下拉菜单中输入字段的点击事件(AngularJS 过滤器元素)

ruby-on-rails - 下拉选择数据库表