【发布时间】:2018-02-27 14:13:57
【问题描述】:
我在 Windows 上使用 chromedriver。当浏览器中的缩放级别设置为不同于 100% element.click() 时,可能无法正常工作。它不是单击指定元素,而是单击另一个元素(可能位于原始元素处于 100% 缩放的位置)。就我而言,我无法控制浏览器的缩放级别。因此,不能像下面的 GIF 那样将其设置回 100%。
我知道这是IEDriver 的限制:
浏览器缩放级别必须设置为 100%
但是 chromedriver website 没有明确提到这一点。我想知道这是一个已知的限制还是一个错误?
有什么解决方法吗?
这是一个演示问题的 gif: 演示页面和脚本是here。
更新:
- Chrome 版本:60.0.3112.113(官方版本)(32 位)
- chromedriver 版本:2.32.498550(9dec58e66c31bcc53a9ce3c7226f0c1c5810906a)
【问题讨论】:
-
我认为这是可能的。 Selenium 计算元素的中心点,然后点击中心点。当缩放不是 100% 时,Selenium 可以在缩放 100% 下获得中心点值。我认为您可以编写脚本来证明我的猜测是否正确,方法是使用缩放 100% 而不是 100% 的元素的左上角位置来查看它们是否相同。如果相同,这是 Web 驱动程序需要考虑的问题/功能。
-
能否展示一下实现代码并确保 Webelement 没有被缓存。当我们找到元素并同时执行点击时,我认为 selenium 没有问题。
-
@TonyBui 我的实现:
return driver.findElement(By.id('box-'+id)).click();我相信它不会缓存元素。有关更多详细信息,请参阅我上面链接的要点。 -
chromedriver和chrome浏览器的版本是多少?
-
@ChandaKorat 请查看上面的更新
标签: javascript selenium webdriver selenium-chromedriver