我已经看了一些涉及这个主题的其他问题,但我没有在任何地方看到这个特殊问题。我有一个点击Web元素的测试。我尝试通过ID和XPath引用它,并等待它使用wait.until()
显示。
有时似乎工作正常,但有时我得到ElementNotVisibleException
。 (实际上,由于我添加了wait.until()
,我得到了TimeoutException
,但是如果我删除它,它会抛出ElementNotVisibleException
。)也就是说,我可以运行一次测试,它将是能够单击元素并继续完成。其他时候,我得到例外。问题不在于我是否得到一个例外,问题是有时会得到异常,但其他时候能够引用该元素而没有任何例外。
我没有做过任何我所知道的改变。每次都会快速正确地加载页面。我没有意识到服务器问题。它大约有一半时间抛出异常,而另一半它可以毫无问题地引用元素。
对于底层网站代码而言,这可能比使用Selenium更具问题吗?我手动检查了计算的CSS值,它们似乎表明该元素应该是可见的。
答案 0 :(得分:-4)
主要问题是加载页面。如果页面加载延迟,则在抛出异常时找不到Web元素。
要解决上述问题,请使用
Thread.sleep(milliseconds); method.