0

我正在使用 win 应用程序驱动程序为桌面应用程序构建一些测试。一切都很好,但无法使用我之前在 Web 应用程序中使用的页面工厂模型。问题是如果一个元素还没有完成加载,那么在访问该元素之前任何类型的等待都不会运行。一旦我打电话等待它就会失败

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

...一旦访问它(并且在它可以运行之前),代码就会跳转到我设置的“页面”中的元素并说找不到它。我知道在调试时可以找到元素,所以元素定位器很好。有没有更好的方法来设置页面中的元素而不能使用页面工厂模型?Page 工厂似乎不会立即尝试访问该元素,这就是它运行良好的原因。以下是我设置元素的方式...

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

1 回答 1

0

多谢你们。需要在这里和那里进行更改,但现在将元素设置如下...

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

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

于 2019-06-18T15:23:51.790 回答