缩放后元素不可点击

Element is not clickable after zoom

全部 我通过硒和 python:

获取元素
driver.get(url)    
el = driver.find_elements_by_css_selector('mycssselector')[0]
el.click()

没关系! 但是接下来,我发现有些时候页面太长,所以我在点击之前放大了页面:

driver.get(url)    
driver.execute_script("document.body.style.zoom='85%'")
el = driver.find_elements_by_css_selector('mycssselector')[0]
el.click()

但是这次,我收到了错误信息:

element click intercepted: Element is not clickable at point (1626, 120) 

修改缩放值后有什么办法可以cilck吗?谢谢!

使用操作 class 或 java script executor 来点击

from selenium.webdriver.common.action_chains import ActionChains

el = driver.find_elements_by_css_selector('mycssselector')[0]
ActionChains(driver).move_to_element(el).click().perform()

driver.execute_script("arguments[0].click();", el)

使用 WebDriverWait() 并等待 element_to_be_clickable()

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"mycssselector"))).click()

导入以下库

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

或许您可以尝试在缩放之前选择元素,然后再次使用 execute_script 单击该元素。

driver.get(url)
el = driver.find_elements_by_css_selector('mycssselector')[0]
driver.execute_script("document.body.style.zoom='85%'")
driver.execute_script("arguments[0].click();", el)
el.click()