6、Selenium + Python 实现 UI 自动化测试-鼠标操作

前面的章节我们已经使用过.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% ?我只能说林子大了什么鸟都有,在“踩坑”章节,我会告诉你。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页