使用硒不稳定元素可见性

时间:2016-02-07 09:43:58

标签: selenium selenium-webdriver selenium-chromedriver selenium-firefoxdriver

我不知道为什么80%的时间测试工作正常,有时候我得到的错误是元素不可见虽然我使用wait.until ....

非常奇怪,有没有人也能得到这个?

3 个答案:

答案 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);