我正在使用Seleneium抓取一些网站,该网站可跟踪我的鼠标运动,并要求我使用鼠标来单击。是否可以模拟被JavaScript识别为鼠标移动的鼠标移动而无需移动我的实际鼠标?即这样我可以运行多个脚本,并可以使用自己的鼠标来做其他事情?
我曾经考虑过使用虚拟机,但这似乎完全是矫kill过正,尤其是因为我需要同时运行多个虚拟机。
这与Human-like mouse movements via Selenium不同,因为这里的重点是如何模拟javascript将以常规鼠标移动方式拾取的鼠标移动,但是不会移动实际的鼠标,因此您可以运行多个脚本和/或用普通的鼠标做其他事情。
答案 0 :(得分:1)
您可以通过Selenium-Python绑定中的 ActionChains 模拟鼠标操作。
假设您有一个web element
,如下所示:
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, 'someid')))
您可以像这样使用动作链:
ActionChains(driver).move_to_element(element).perform()
请注意,您必须导入from selenium.webdriver.common.action_chains import ActionChains
才能使用操作链。
一些广泛使用的 ActionChains 方法是: