Я работаю над автоматизацией приложения UWP с использованием WinAppDriver с C #, но в некоторые моменты мои тесты терпят неудачу, поскольку некоторым элементам требуется время, чтобы появиться, и я не мог применить waitDriverWait (думаю, у WAD этого нет), поэтому я нашел ниже код, который работает, но хотел бы знать, есть ли лучший подход, пожалуйста?
public static void WaitForElement(this WindowsDriver<WindowsElement> driver, string IDType, string elementName, int time = 10000)
{
var wait = new DefaultWait<WindowsDriver<WindowsElement>>(BasePage.WindowsDriver)
{
Timeout = TimeSpan.FromSeconds(time),
PollingInterval = TimeSpan.FromSeconds(0.5)
};
wait.IgnoreExceptionTypes(typeof(InvalidOperationException));
wait.Until(driver1 =>
{
int elementCount = 0;
switch (IDType)
{
case "id":
elementCount = driver1.FindElementsByAccessibilityId(elementName).Count;
break;
case "xpath":
elementCount = driver1.FindElementsByXPath(elementName).Count;
break;
case "name":
elementCount = driver1.FindElementsByName(elementName).Count;
break;
}
return elementCount > 0;
});
}