在C#中查找DropDown中的元素(硒)

本文关键字:元素 DropDown 查找 | 更新日期: 2023-09-27 17:58:15

我正在尝试查找字段名"userPick",然后从下拉列表中选择第一项。

这背后的Html代码:

<div class="fullRow">
<label for="userPick" class="fieldLabel90right">User:</label>
<select id="userPick" name="userPick" class="selectfont" size="1"   onchange="editIbUser(this)">
<option value="0">--- Select a user to edit ---</option>
<option value="1623" size="small" selected="">IIII, OOOOO  (IOOP78 - Email: jjj@ff.com)</option>
<option value="1620" size="small">JJJ, AKU  (aroy - Email: lll@hh.com)</option>
<option value="1625" size="small">LLL, KK  (LLL90 - Email: kl@h.com) </option>
<option value="1626" size="small">ROY, ADRIJA  (AR8456 - Email: rry@gm.com) </option>
</select>
<input type="button" value="Sort by Email Address" name="btnSort"  onclick="userSort('name')" style="width: 180px; line-height: 1px;"/>
</div>

我使用的C#代码是:

var User = Driver.Instance.FindElement(By.Id("userPick"));
var firstitem1 = Driver.Instance.FindElements(By.TagName("option"))[1];
firstitem1.Click();

我还使用过:

var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(20));
User=wait.Until(ExpectedConditions.ElementIsVisible(By.Id("userPick")));
var firstitem1 = Driver.Instance.FindElements(By.TagName("option"))[1];
firstitem1.Click();

还有这个:

var User = Driver.Instance.FindElement(By.Id("userPick"));
var firstitem1 = Driver.Instance.FindElements(By.TagName("option"))[1];
IJavaScriptExecutor js1 = Driver.Instance as IJavaScriptExecutor;
js1.ExecuteScript("arguments[0].click()", firstitem1);

我面临的问题是,它没有给出任何例外,它只是忽略了这个字段名称,并给了我成功的测试。

我需要找到字段名userPick,但似乎找不到。有人能帮忙吗?

在C#中查找DropDown中的元素(硒)

您应该尝试使用SelectElement进行下拉,如下所示:-

var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(20));
var User=wait.Until(ExpectedConditions.ElementIsVisible(By.Id("userPick")));
var select = new SelectElement(User);
select.SelectByIndex(1);

 select.SelectByValue("1623");

希望它能帮助…:)