首页 > 解决方案 > 更改 python selenium webdriver 的缩放会破坏点击功能?

问题描述

每次我尝试加载缩小的页面时,我希望程序单击的元素不再被单击,并且它给出一个 ElementClickInterceptedException 表示它正在尝试单击不同的元素。我已经测试了不同的变焦,相同的结果。几乎就像它只是将元素的 X 和 Y 坐标用于正常缩放页面,即使我更改了它的缩放(即,如果一个元素靠近页脚并且我缩小了,它会单击它正下方的元素,它以前所在的位置)。我认为只要我使用 find_element_by 任何东西,元素在页面上的位置都无关紧要,但我在这里。有人知道修复吗?这是我加载网站并缩小的方式:

driver.get(website)
driver.execute_script("document.body.style.zoom='80%'")

这是引发错误的单击:

ch = driver.find_element_by_css_selector('input.changeplayer.form-control.ui-autocomplete-input')
ch.click()

标签: pythonseleniumgoogle-chromewebdriver

解决方案


  1. 长期以来,这一直是一个已知问题。ChromeDriver 不能有效地支持缩放点击。自 2013 年以来,这一直是一个问题,并且似乎没有修复工作。

  2. It's almost like it's just using the elements' X and Y coords在某种程度上,是的。缩放会改变偏移量,因此 ChromeDriver 无法正确定位页面的右侧部分。


推荐阅读