上一节 基于Python的Selenium自动化测试(三)——控制浏览器窗口大小、前进、后退、刷新介绍了一些常用的操作浏览器的方法,这一节我们继续介绍关于鼠标操作的方法。
在 WebDriver 中,ActionChains 类提供的常用鼠标操作方法有:
perform() 执行所有 ActionChains 中存储的行为
click() 点击(左击)
context_click() 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element() 鼠标悬停
1、鼠标点击操作(不用引入ActionChains类)
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://www.csdn.net/")
driver.find_element_by_xpath("//cite[@id='login']/a").click();
driver.find_element_by_id("username").clear()
driver.find_element_by_id("username").send_keys("zhangsan")
driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys("123456")
driver.find_element_by_class_name("logging").click()
driver.quit()
2、鼠标右击操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome()
driver.get("http://www.csdn.net/")
#定位到要右击的元素
right_click=driver.find_element_by_xpath("//cite[@id='login']/a")
#对定位到的元素执行点击右键的操作
ActionChains(driver).context_click(right_click).perform()
driver.quit()
3、鼠标悬停
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
#定位到要悬停的元素
above=driver.find_element_by_xpath("//div[@id='u1']/a[8]")
#对定位到的元素执行悬停操作
ActionChains(driver).move_to_element(above).perform()
driver.quit()
4、鼠标双击操作
from selenium import webdriver
#引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
....
#定位到要悬停的元素
double_click = driver.find_element_by_id("xx")
#对定位到的元素执行双击操作
ActionChains(driver).double_click(double_click).perform()
....
5、鼠标拖放操作
drag_and_drop(source, target)在源元素上按下鼠标左键,然后移动到目标元素上释放。
source: 鼠标拖动的源元素。
target: 鼠标释放的目标元素。
……
from selenium import webdriver
#引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
....
#定位元素的源位置
element = driver.find_element_by_name("xxx")
#定位元素要移动到的目标位置
target = driver.find_element_by_name("xxx")
#执行元素的拖放操作
ActionChains(driver).drag_and_drop(element,target).perform()
....
下一节 基于Python的Selenium自动化测试(五)——常用键盘事件我们将继续介绍常用的键盘事件。
更多关于Selenium自动化测试的源码,欢迎查看我的github