前面的章节我们已经使用过.click()操作,是一个鼠标的单击动作。
鼠标操作还包括双击、悬浮、拖动等操作,今天,跟我将它“一网打尽”
一、概览
本文介绍Selenium Webdriver 提供的鼠标操作方法。
二、前提
引入鼠标操作的包
from selenium.webdriver.common.action_chains import ActionChains
三、语法
ele = driver.find_element_by_id('xx')
ActionChains(driver).click(ele).perform()
四、练习网址
1、http://sahitest.com/demo/
这个网址简直是练习神器,作者整理了各种web控件,让我们练习定位及操作。(后面整理一个答案系列吧)
2、http://westcomb.cn/demo/
五、实例
1、鼠标单击,click(self, on_element)
方法一:
from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("http://sahitest.com/demo/clicks.htm") ele = driver.find_element_by_xpath('/html/body/form/input[3]') sleep(2)
ele.click()sleep(3)driver.quit()
方法二:
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from time import sleep driver = webdriver.Chrome() driver.get("http://sahitest.com/demo/clicks.htm") ele = driver.find_element_by_xpath('/html/body/form/input[3]') sleep(2) ActionChains(driver).click(ele).perform() sleep(3) driver.quit()
2、鼠标双击,double_click(self, on_element)
ActionChains(driver).double_click(button).perform()
3、右键单击,context_click(self,on_element)
4、悬浮(移动鼠标到某元素),move_to_element(self, to_element)
5、拖放(把对象a拖到对象b上,然后放开鼠标),drag_and_drop(self, source, target)
6、单击不松开,click_and_hold(self, on_element)
7、根据偏移量拖放,drap_and_drop_by_offset(self, source, xoffset, yoffset)
8、根据偏移量移动,move_by_offset(self, xoffset,
9、根据偏移量悬浮,move_to_element_with_offset(self, to_element, xoffset ,yoffset)
10、释放,release(self, on_element)
11、重置,reset_action(self)
12、发送,send_keys(self, keys_to_send)
13、发送到元素,send_keys_to_element(self, element, keys_to_send)
14、执行,perform()
15、按下键,key_down(self, value, element)
16、松开按键,key_up(self, value, element)
六、如何确定某个元素的位置
1、通过浏览器插件测量网页元素的像素。
https://jingyan.baidu.com/article/eb9f7b6d87e2ae869264e847.html
2、使用qq截图(更方便)
假如,我想根据像素位置点击Clear ,这个按钮,就通过截图工具,确认下,点击(43,225)这个位置就可以了。
注意:采用像素操作元素的时候,需要将窗口最大化,以保证相对位置准确。
七、总结
1、第一步,引入ActionChains包
2、定位到元素(想对哪个元素进行操作)
ele = driver.find_element_by_xpath('xxx')
3、固定格式
ActionChains(driver).click(ele).perform()
用上面的操作,替换掉这里的click即可
好了,正所谓“鼠标操作种类繁多,但规律可寻”,掌握上面的知识,即可搞定99%的鼠标操作。另外1% ?我只能说林子大了什么鸟都有,在“踩坑”章节,我会告诉你。