如何使用Java在Selenium WebDriver中按类名选择下拉列表值

时间:2016-05-10 12:09:58

标签: java html selenium dropdownbox

我是硒的新手,目前我正在研究它。我想从下拉列表中选择一个值。 ul class =“ns-dropdown”和选项很多,我试图选择并加载Australian Dollar页面。

这是Html标签:

<ul class="ns-dropdown">
<li class="ns-option><a class="c36 noUnderline">USD</a></li>
<li class="ns-option><a class="c36 noUnderline">AUD</a></li>
<li class="ns-option><a class="c36 noUnderline">NZD</a></li>
</ul>

这是我试过的代码

WebElement dropDownListBox = driver.findElement(By.className("ul.ns-dropdown")); 
Select clickThis = new Select(dropDownListBox);
clickThis.selectByValue("Australian Dollar");

但这没效果。

请建议我设置下拉值的一些方法。

谢谢!

2 个答案:

答案 0 :(得分:0)

Select类用于与<select>标记而不是<ul>标记一起使用,因此我想您在尝试实例化{时遇到了UnexpectedTagNameException {1}}?

对于您的方案,您应首先使用以下内容标识父clickThis标记:

<ul>

由于您尝试使用的子// Very similar to what you first tried! WebElement dropDownListBox = driver.findElement(By.className("ns-dropdown"));` 代码包含各自的<li>代码,您可以使用<a>定位器查找并点击所需的货币选项,如此:

By.linkText()

答案 1 :(得分:0)

Select课程仅适用于<select>代码。在您的情况下,您需要打开下拉列表以使选项可见,然后单击您需要的选项

driver.findElement(By.className("ns-dropdown")).click(); // open the dropdown
driver.findElement(By.linkText("AUD")).click(); // choose Australian Dollar

如果您有计时问题,可以添加明确的等待

WebDriverWait wait = new WebDriverWait(driver, 10);

driver.findElement(By.className("ns-dropdown")).click(); // open the dropdown
wait.until(ExpectedConditions.visibilityOfElementLocated(By.ilinkText("AUD"))).click(); // wait for the option to be visible before clicking on it.