我不知道为什么80%的时间测试工作正常,有时候我得到的错误是元素不可见虽然我使用wait.until ....
非常奇怪,有没有人也能得到这个?
答案 0 :(得分:0)
这是任何ui自动化工程师的噩梦..
诀窍在于如何有效地使用等待......
尝试使用显式等待并使用等待元素到其中的可见选项..
也尝试使用JAVASCRIPT / jQuery click ..即使你的元素不可见,这也行。但元素应该存在..
答案 1 :(得分:0)
这种可变性正是您在测试中要避免的可变性。
一点也不奇怪,一方面是测试网站服务器和客户端浏览器之间的race condition的经典示例,另一方面是一个非常快速的自动化测试程序另一方面,它有预期但工作速度远远超过人类。每个人都在某个时候看过它。
Here's a good set of examples可帮助您将等待加入到您的Selenium代码中,而不会可能会massively slow down您的测试的不必要的延迟。
答案 2 :(得分:-1)
只是提出一个想法:有时候使用不同的方法会有所帮助,这意味着测试的行为不会像用户那样100%。
只需刷新(甚至是第二次)页面并等待所有必需的元素都已加载帮助我。
如果刚刚部署了软件,则网络服务器需要重新组织并需要更长时间才能做出响应,因此您可能增加Selenium的超时。
另一个问题,例如使用浮动菜单时的导航可以通过直接导航解决到URL,这不常见,但任何用户都可以这样做。
将当前窗口上的焦点带回来帮助了我:
Browser.WebDriver.SwitchTo().Window(Browser.WebDriver.CurrentWindowHandle);