用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains
当调用ActionChains的方法时,不会立即执行,而是会将所有的操作按顺序存放在一个队列里,当调用perform()方法时,队列中的事件会依次执行
常用API
-》click(on_element=None) ——单击鼠标左键
-》click_and_hold(on_element=None) ——点击鼠标左键,不松开
鼠标点击下的元素,如果元素不存在,则单击目前鼠标的位置
-》context_click(on_element=None) ——点击鼠标右键
右击元素,如果元素不存在,则单击鼠标目前所在位置
-》double_click(on_element=None) ——双击鼠标左键
-》drag_and_drop(source, target) ——拖拽到某个元素然后松开
-》drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
-》key_down(value, element=None) ——按下某个键盘上的键
-》key_up(value, element=None) ——松开某个键
-》move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
-》move_to_element(to_element) ——鼠标移动到某个元素
-》move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置
-》release(on_element=None) ——在某个元素位置松开鼠标左键
-》send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
-》send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素
-》perform() ——执行链中的所有动作
调用方法:
from selenium.webdriver.common.action_chains import ActionChains
element=driver.find_element_by_xpath("xx")#定位到元素
ActionChains(driver).context_click(element).perform() #鼠标移动到元素,单击鼠标右键
有两种方法可以实现一个完整操作,链式写法和分步写法
链式写法:
element1=driver.find_element_by_xpath("xx")
element2=driver.find_element_by_xpath("xx")
ActionChains(driver).move_to_element(element1).context_click(element2).perform()
分步写法:
element1=driver.find_element_by_xpath("xx")
element2=driver.find_element_by_xpath("xx")
actionChains = ActionChains(driver)
actionChains.move_to_element(element1)
actionChains.context_click(element2)文章来源:https://www.toymoban.com/news/detail-604188.html
actionChains.perform()文章来源地址https://www.toymoban.com/news/detail-604188.html
到了这里,关于Python WebDriver API - 鼠标操作ActionChains的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!