处理由于缩放级别而不可见的元素

时间:2014-01-31 20:34:17

标签: selenium-webdriver

我们拥有自动化流程,几个月来一直在抓取网站。最近我们发现我们的刮刀无法正常工作。

事实证明,网站已被更改,以便他们在框架内放置一个包含9列的表格。但是,框架或表格的样式不正确,并且只有前6列在屏幕上以100%缩放,因为表格太大。当您缩小到大约50%时,其余列将设置为适合视图。

不幸的是,我需要点击的最后一列上有一个按钮,但Selenium不喜欢它,并说该元素在100%缩放时不在视图中。

当我使用以下内容检查它是否在视图中时

while (!elmt.isDisplayed()) {
  // wait for it
}

并手动缩小页面,以便带有按钮的列进入视图,然后成功单击该按钮。

如何缩小页面?

1 个答案:

答案 0 :(得分:2)

是的,我在Safari测试时遇到了类似的问题。

解决方法是在对该页面执行任何操作之前以编程方式缩小页面。

在js的帮助下,您可以这样做:

document.body.style.zoom = "30%"

或者无论需要什么价值。在selenium中使用javascript引擎来执行此脚本。

这项工作非常适合我。