我正在使用Win App驱动程序为桌面应用程序构建一些测试。一切都很好,但是不能使用我以前在Web应用程序中使用过的页面工厂模型。问题是,如果元素尚未完成加载,则在访问该元素之前不会进行任何等待。我打电话叫等待失败
Waits.WaitForDisplayedEnabled(Scan.BarcodeField, Driver, 3);
...只要访问了它(并且它无法运行),代码就会跳转到我已设置的“页面”中的元素,并说找不到该元素。我知道在调试时可以找到该元素,因此元素定位器很好。有没有更好的方法来设置页面中的元素而又不能使用Page Factory模型? Page工厂似乎不会立即尝试访问该元素,这就是为什么它如此有效的原因。以下是我如何设置元素...
public WindowsElement BarcodeField => Driver.FindElementByXPath("//*[@Name='Barcode' and @ClassName='TextBlock']");
答案 0 :(得分:0)
谢谢大家。需要在此处和此处进行更改,但是现在将元素设置如下...
public By BarcodeField => By.XPath("//*[@Name='Barcode' and @ClassName='TextBlock']");
...并且等待现在使用By
而不是WindowsElement