我是硒的新手,目前我正在研究它。我想从下拉列表中选择一个值。 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");
但这没效果。
请建议我设置下拉值的一些方法。
谢谢!
答案 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.