【发布时间】:2016-11-06 13:03:11
【问题描述】:
我正在使用 Selenium 打开一个页面。打开页面后,我想单击某种刷新按钮。当我单击它时,我收到此错误:
ElementNotVisibleError: 元素不可见
这是我用来点击按钮的代码:
driver.findElement(By.id(id)).click();
我的猜测是按钮在被按下时不可见。那也许它开始时也不可见。因为它没有进行整页刷新。
selenium 有什么方法可以检查某些东西是否可见,或者等到它可见?
编辑:
事实证明,有多个按钮具有相同的 ID。我试图达到的按钮已经下降了。我试图找到带有By.xpath 的按钮,但还是找不到。我这样做的方式是按 id 搜索按钮,例如 //button[contains(@id, 'abc')][1]。 (当然数量不同)。
Selenium 无法找到该元素,但我可以使用 Chrome 开发人员工具找到它。有什么建议吗?
【问题讨论】:
-
如果您尝试了所有方法后仍然失败。请注意。有时您的浏览器启动得太小,按钮是可见的,但它在窗口的可见区域之外。所以web驱动不能点击它。
-
我试过这个,但在找到元素后我仍然得到它不可见的错误。
driver.wait(until.elementLocated(By.id(id)), 3000, '\nCannot find element by id: ' + _id);driver.findElement(By.id(id)).click(); -
在加载页面之前尝试最大化窗口
-
感谢您的建议。我尝试在启动驱动程序后立即使用以下命令最大化窗口:
driver.manage().window().maximize();。它甚至在我打开页面之前,所以它在按钮可见之前点击了几下。但我仍然遇到同样的错误。还有其他建议吗? -
你能提供你的html页面吗?
标签: javascript selenium xpath