我正在使用Quamotion测试iOS应用程序。我的测试不时失败,因为看来Find-Element
无法在屏幕上找到元素。
当我切换到新窗口并且UI花费一些时间加载时,这似乎会发生。
有什么办法使Find-Element
等待UI完全加载?
您可以使用 Set-Timeout
设置隐式等待超时。当您使用Find-Element
查找元素时,例如Find-Element -xpath "//*[@name='Login']"
时,Quamotion Webdriver将尝试找到满足Set-Timeout
指定量的XPATH表达式的元素。
您应该检查Find-Element
是否返回实际元素ID。
如果您没有获得元素ID,则暂停会击中并且找不到元素。尝试增加超时。
如果您确实获得了元素ID,则找到一个元素,但是:
- 这不是您期望的元素。如果您在
Click-Element
之后几乎立即进行Find-Element
,并且上一页的UI结构仍在存储中;
可能会发生这种情况;
- 另一个元素匹配您的XPATH表达式。您可以使用
Get-ElementRectangle
获取元素的矩形,并确定它是否是您期望的元素 - 该元素是在内存中创建的,但尚未在屏幕上绘制。您可以使用
Is-Displayed
来确定您的元素是否已被绘制。