Прокрутите вниз, используя драйвер winium с помощью C#

При выборе места я могу нажимать на элементы, которые видны. Но я не могу выбрать другие элементы, которые не отображаются в раскрывающемся списке. При попытке выбрать другое место в раскрывающемся списке, которое не отображается в раскрывающемся списке, оно щелкает в другом месте.

Ниже приведен фрагмент кода:

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();

Я также реализовал класс действий. Но это даже кажется не работает.

1 ответ

Я также столкнулся с той же проблемой. Но я не нашел решения. Для временного использования я использовал одно решение. Но это грязная починка.

Если в раскрывающемся меню есть полоса прокрутки вниз, нажмите на эту стрелку прокрутки вниз, пока ваш элемент не станет видимым, а затем попробуйте нажать на этот элемент. Это работает.

Вы можете перейти к элементу с помощью Winium.Elements, который доступен в виде пакета Nuget https://github.com/2gis/Winium.Elements

Если у вас есть выше, вы можете использовать его в своем тесте, как это

Если вышеприведенный элемент является комбинированным, то вы можете сделать следующее

 var comboBoxElement= ele.ToComboBox();

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

Если выше элемент является списком, то вы можете сделать следующее

 var listWebElement= ele .ToList();

     listWebElement.Scroll(By.Name("LINWOOD")).Click();
Другие вопросы по тегам