我不知道为什么move_to_element()
ActionChains 不适用于 chromedriver >74。
(但它适用于 chromedriver 74 和 geckodriver。)
即使我在 ActionChains 之前添加了这三行,它仍然无法移动到元素。
WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.XPATH, xxxxx)))
WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.XPATH, xxxxx))
drvier.execute_script("arguments[0].scrollIntoView();", element)
ActionChains(driver).move_to_element(element).click().perform()
并抛出如下错误:
selenium.common.exceptions.MoveTargetOutOfBoundsException:消息:将目标移出边界(会话信息:chrome=79.0.3945.117)
我也尝试使用Selenium MoveTargetOutOfBoundsException 中提到的 move_to_element_with_offset 即使在滚动到 element 之后,它仍然无法正常工作:
ActionChains(driver).move_to_element_with_offset(element, 5, 5).click().perform()
下面是我的 chromedriver 设置。对 ActionChains 有任何设置影响吗?
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('log-level=3')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-proxy-server')
options.add_argument('--disable-extensions')
options.add_argument('--disable-infobars')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=options)