Selenium中所有高级操作都被封装在ActionChains这个类中,所以当我们想进行双击,右键点击等等之类的操作的时候,就需要用到ActionChains.

当调用ActionChains时,赋予的动作不会立即执行,而是会将所有的操作按顺序存放在一个队列里,只有当调用perform()方法时,队列中的动作才会依次执行。所以在动作行为设计好之后,一定要以perform方法作为结尾。

例:当我们想要对找到的元素执行双击的时候

1 from selenium.webdriver import ActionChains
2 ActionChains(driver).double_click(driver.find_element(By.ID, "7")).perform()

ActionChains方法例举如下:

perform(self):        ---执行链中的所有动作
reset_actions(self):     ---清除存储在远端的动作
click(self, on_element=None):   ---鼠标左键单击
click_and_hold(self, on_element=None):    --鼠标左键单击,不松开
context_click(self, on_element=None):       ---鼠标右键单击
double_click(self, on_element=None):        ---鼠标左键双击
drag_and_drop(self, source, target):        ---拖拽到某个元素后松开
drag_and_drop_by_offset(self, source, xoffset, yoffset):        ---拖拽到某个坐标后松开
key_down(self, value, element=None):        ---某个键盘键被按下
key_up(self, value, element=None):          ---松开某个键
move_by_offset(self, xoffset, yoffset):     ---鼠标移动到某个坐标
move_to_element(self, to_element):          ---鼠标移动到某个元素
move_to_element_with_offset(self, to_element, xoffset, yoffset):        ---移动到距某个元素(左上角)多少的位置
release(self, on_element=None):     ---在某元素上松开鼠标
send_keys(self, *keys_to_send):     ---发送某些值到当前焦点元素
send_keys_to_element(self, element, *keys_to_send):     ---发送某些值到指定元素