【发布时间】:2018-09-17 02:07:14
【问题描述】:
我无法从下拉列表中选择一个选项,通过单击输入文本框可以看到该选项。我在 c# 中使用 Selenium。功能如下;
- 打开网页
- 点击目标文本框
- 这会导致显示目的地下拉列表
- 从此列表中选择一个选项
- 然后将选项写入目标文本框
此列表的 HTML 是;
<div id='dvCountryList'>
<select class="country-list" id="DestinationPicker" multiple="multiple" name="DestinationPicker">
<option value="AU">Australia</option>
<option value="ID">Indonesia</option>
<option value="FJ">Fiji</option>
<option value="US">United States of America (includes Hawaii)</option>
<option value="CN">China</option>
<option value="XA">Worldwide</option>
<option value="TH">Thailand</option>
</select>
</div>
我的测试代码如下;
IWebElement destination1 = driver.FindElement(By.ClassName("select2-search__field"));
destination1.Click();
IWebElement destination2 = driver.FindElement(By.ClassName("country-list"));
SelectElement country = new SelectElement(destination2);
country.SelectByValue("AU");
运行此测试会产生以下错误;
OpenQA.Selenium.ElementNotVisibleException : 元素不可见:元素当前不可见,不能被操作
我尝试在找到国家/地区列表类之前使用等待,但这没有帮助。我对 Selenium 还是很陌生,因此我将不胜感激任何帮助/反馈。谢谢。
【问题讨论】:
-
点击后似乎出现了选择列表?弹出后可以检查选项吗?
-
是的,必须单击输入框控件才能显示列表。我不确定您所说的“检查选项”是什么意思?
-
这基本上是因为有超过 1 个具有相同类或 id 的元素并且您选择了不可见元素。看看这个stackoverflow.com/questions/10641535/…
标签: c# selenium selenium-webdriver webdriver html-select