前一篇介绍了 selenium 定位元素的 8 种方法,基本上只要页面上看得到的元素都能够被定位到就能对它们进行操作,但也有一些元素不能光靠定位到了就能执行操作,例如隐藏的元素,需要将鼠标移动到这个元素的位置上才会显现才能对它进行操作, 这时就需要用到 ActionChains 的功能,来实现鼠标移动、右键、双击、拖拉等功能
首先将此功能导入 from selenium.webdriver.common.action_chainsimport ActionChains
一、将鼠标滑动到指定位置并进行点击
add_label = driver.find_element_by_xpath('//span[text()="標籤"]//parent::a//following-sibling::div')
action = ActionChains(driver)
action.move_to_element(add_label).click().perform()
二、鼠标右键功能
find_label = driver.find_element_by_xpath('//span[text()="New_label2"]')
ActionChains(driver).context_click(find_label).perform()
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) ——移动到距某个元素(左上角坐标)多少距离的位置
perform(self) ——执行链中的所有动作
release(self,on_element=None) ——在某个元素位置松开鼠标左键
send_keys(self,*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(self,element, *keys_to_send) ——发送某个键到指定元素