我的测试失败了:
WebDriverException: Message: unknown error: Element is not clickable at point (1 786, 183). Other element would receive the click: <'div align="right">...<'/div>
我访问的xpath是:
${UPDATE} xpath=//button[@type='submit' and contains(text(),'Update')]
在关键字中使用:
wait until element is visible ${UPDATE}
click element ${UPDATE}
来源:
<div align="right">
<button type="submit" class="btn btn-primary ng-binding" ng-click="submitForm()" ng-disabled="updateDisabled">Update</button>
<button type="button" class="btn btn-primary" ng-click="reset(projectForm)" ng-disabled="updateDisabled">Reset</button>
</div>
但是按钮在测试中真的被点击了 -> 数据已保存 - 所以没问题。
我只是不明白为什么它在正确点击时会抛出异常,我该怎么做才能让它通过..很明显它找到了元素并点击了它......我也尝试使用“等到元素已启用”和“焦点”...感谢您的任何建议!
PS:我在div元素中加了字符“'”,否则这里不显示..:)
最佳答案
虽然这样做真的很糟糕,但我建议放置几个 Sleep 1s
测试用例周围的关键字,例如:
Sleep 1s
Wait Until Element Is Visible ${UPDATE}
Sleep 1s
Click Element ${UPDATE}
Sleep 1s
只是为了调试并确保驱动程序不会被自己绊倒。 (这是我遇到的问题)
如果这然后有效并通过,那么您基本上需要等待比按钮处于事件状态更长的时间。网页的另一部分是否需要更长的加载时间?如果是这样使用。
但是,如果可以,请摆脱
Sleep 1s
关键词,因为它真的是不好的做法。
关于selenium - 元素无法点击 - 但它实际上点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41045804/