【问题标题】:Scroll down using winium driver with c#使用带有 c# 的 winium 驱动程序向下滚动
【发布时间】:2018-12-05 05:34:30
【问题描述】:

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

下面是代码sn-p:

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 类。但这似乎不起作用。

【问题讨论】:

标签: c# selenium winium


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以使用 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 2013-08-30
      • 2017-09-03
      • 2010-10-30
      • 1970-01-01
      • 2020-03-30
      • 2014-04-06
      相关资源
      最近更新 更多