1

在选择位置时,我可以单击可见的项目。但我无法选择下拉列表中未显示的其他项目。当尝试选择下拉列表中不可见的其他位置时,它正在单击其他位置。

下面是代码片段:

IWebElement ele = driver.FindElement(By.Id("cmbLocation"));
List<IWebElement> lis = ele.FindElements(By.ClassName("ListBoxItem"));
for(int i = 0; i< lis.size(); i++) {
    WebElement elem = lis.get(i).FindElement(By.name("LINWOOD"));
    if("LINWOOD".contains(elem.getText())) {
        lis.get(i).click();
        break;
    }
}

我什至尝试将索引号传递为

lis.get(15).click();

我也实现了 Actions 类。但这似乎不起作用。

4

2 回答 2

0

我也面临同样的问题。但是,我没有找到解决办法。对于临时我使用了一种解决方案。但这是肮脏的修复。

如果下拉菜单有向下滚动条,请单击该向下滚动箭头直到您的元素可见,然后尝试单击该元素。这样可行。

于 2018-12-13T06:39:22.560 回答
0

您可以使用 Winium.Elements 滚动到元素,这可作为 Nuget 包 https://github.com/2gis/Winium.Elements

一旦你有了上述内容,你就可以像这样在你的测试中使用它

如果上面的 ele 是一个组合框,那么您可以执行以下操作

 var comboBoxElement= ele.ToComboBox();

        comboBox.Expand();
        comboBox.ScrollTo("LINWOOD").Click();

如果上面的 ele 是一个列表框,那么您可以执行以下操作

 var listWebElement= ele .ToList();

     listWebElement.Scroll(By.Name("LINWOOD")).Click();
于 2019-03-11T11:46:33.590 回答