c# - 多个下拉框不拾取新元素(Selenium,C#)
问题描述
我必须下拉框,我尝试使用 Selenium 进行选择,第一个可以正常工作,但是当我尝试选择第二个时,它不会获取值并且仍然使用第一组元素。
public static void AnfoldComboBox(string sComboBoxId, string sItemText)
{
Drivers.CurrentDriver.FindElement(By.CssSelector($"#{sComboBoxId} + .anfold-combobox .anfold-combobox-toggle.ui-corner-right")).Click();
IWebElement dropDownWrapper = Drivers.CurrentDriver.FindElement(By.ClassName("anfold-combobox-autocomplete"));
ReadOnlyCollection<IWebElement> items = dropDownWrapper.FindElements(By.CssSelector(".ui-menu-item > div"));
foreach (IWebElement item in items)
{
if (item.Text.Trim() == sItemText)
{
item.Click();
break;
}
}
解决方案
您能否尝试以下代码并检查您是否首先从下拉列表中获取完整列表?
SelectElement test = new SelectElement(driver.FindElement(By.CssSelector(".ui-menu-item > div")));
IList<IWebElement> size = test.Options;
int myitem = size.Count;
for (int i = 0; i < myitem; i++)
{
String value = test.ElementAt(i).Text;
Console.WriteLine(value);
if (val.Equals(sItemText, StringComparison.InvariantCultureIgnoreCase))
{
val.click();
}
else{
Console.WriteLine("Not present");
}
}
推荐阅读
- javascript - 是否可以使用 JS 获取代码正在执行的函数的名称?
- javascript - 使用 React 我正在尝试生成代表三个集合的三个按钮,单击时会将您带到该卡片集合
- python-3.x - 我可以获取“外部”类属性并在“内部”类中使用它们吗?
- css - 如何在css中使用渐变的半圆边框
- java - android获取会话ID
- r - 如何创建带有 dbf 扩展名的文件列表?
- angular - 生产构建中的错误:索引 html 生成失败
- html - 如何让我的网站用户更改字体颜色而不让他们访问代码?
- uwp - UWP GetSystemIdForPublisher 重置注册表源
- html - 是否有在 CSS 过渡中设置截止日期的功能?没有 JS