Прокрутите вниз, используя драйвер 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();