В прошлом я успешно использовал WebDriverWait
с моей автоматизацией WinAppDriver - вам придется установить DotNetSeleniumExtras.WaitHelpers
для доступа к классу ExpectedConditions
, так как он теперь устарел в стандартном пространстве имен Selenium, но я не ничего не мешает вам использовать WebDriverWait
.
Ожидание заполнения элемента Text значением:
var Driver = new WindowsDriver<WindowsElement>();
var myElement = Driver.FindElementByAccessibilityId("someId");
var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(30));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.TextToBePresentInElement(myElement, "text"));
Ожидание отображения элемента:
var Driver = new WindowsDriver<WindowsElement>();
var myElement = Driver.FindElementByAccessibilityId("someId");
new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(d => myElement.Displayed);
Ожидание существования элемента, используя другой подход с FindElements
и By.Name
:
var Driver = new WindowsDriver<WindowsElement>();
new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(d => d.FindElements(By.Name("someName")).Count > 0);
Как уже упоминалось, я использовал эти точные методы для ожидания в прошлом с WinAppDriver
, с успехом. Пожалуйста, дайте мне знать, с какими проблемами вы сталкиваетесь с этими подходами.