selenium+python控制鼠标移动

selenium的ActionChains模块可以按下鼠标、移动鼠标、操作键盘。当需要按下鼠标进行断续拖动时,可以使用move_by_offset方法。代码如下:

from selenium.webdriver.common.action_chains import ActionChains

import time


driver = webdriver.Firefox()

ActionChains(driver).move_by_offset(x1,0).perform()
time.sleep(0.5)

ActionChains(driver).move_by_offset(x2,0).perform()

由于每调用一次move_by_offset,都会对ActionChains的内部列表参数self._actions 添加(append)一个命令,调用perform时,会依次执行列表中命令,perform执行结束之后,命令列表并不会清空。下次再次调用perform时,会执行之前添加进self._actions中的所有命令。

所以,上述代码执行结果是:鼠标首先移动x1,停顿0.5s,然后鼠标移动x1+x2。最后,鼠标总移动距离是x1+(x1+x2)

还有另外一种方法,直接

from selenium.webdriver.remote.command import Command
然后driver.execute(Command.MOVE_TO,{'xoffset':x1,'yoffset':0}),可以避开perform这一特性。



你可能感兴趣的:(python,selenium,ActionChains)