试图在等待开始并失败之前被发现的元素

时间:2019-06-18 10:53:01

标签: c# selenium winappdriver

我正在使用Win App驱动程序为桌面应用程序构建一些测试。一切都很好,但是不能使用我以前在Web应用程序中使用过的页面工厂模型。问题是,如果元素尚未完成加载,则在访问该元素之前不会进行任何等待。我打电话叫等待失败

Waits.WaitForDisplayedEnabled(Scan.BarcodeField, Driver, 3);

...只要访问了它(并且它无法运行),代码就会跳转到我已设置的“页面”中的元素,并说找不到该元素。我知道在调试时可以找到该元素,因此元素定位器很好。有没有更好的方法来设置页面中的元素而又不能使用Page Factory模型? Page工厂似乎不会立即尝试访问该元素,这就是为什么它如此有效的原因。以下是我如何设置元素...

public WindowsElement BarcodeField => Driver.FindElementByXPath("//*[@Name='Barcode' and @ClassName='TextBlock']");

1 个答案:

答案 0 :(得分:0)

谢谢大家。需要在此处和此处进行更改,但是现在将元素设置如下...

public By BarcodeField => By.XPath("//*[@Name='Barcode' and @ClassName='TextBlock']");

...并且等待现在使用By而不是WindowsElement

相关问题