selenium-Python之鼠标事件
通过click()来模拟鼠标的单击操作,鼠标还具有鼠标右击,双击,悬停甚至鼠标拖动等功能。在webdriver中,将这些鼠标操作方法封装在ActionChains类提供。
ActionChains类提供鼠标的常用方法:
1)perform():执行所有ActionChains中存储的行为
2)context_click():右击
3)double_click():双击
4)drag_and_drop():拖动
5)move_to_element(): 鼠标悬停
1.鼠标右击操作
对于ActionChains类所提供的的鼠标方法与click()方法的用法有所不同。
代码:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get("http://192.168.xxx.xxxx:1080/")
#定位到要右击的元素
right_click = driver.find_element_by_xpath("/html/body/nav/ul/li[5]/a")
#对定位到的元素执行鼠标右键操作
ActionChains(driver).context_click(right_click).perform()
driver.quit()
注:
1.from selenium webdriver import ActionChains 导入提供鼠标操作的ActionChains类。
2.ActionChains(driver)调入ActionChains()类,将浏览器驱动driver作为参数传入。
3.contex_click()方法用于模拟鼠标右键操作,在调用时需要指定元素定位。
4.perform()执行所有ActionChains中存储的行为,可以理解为对整个操作的提交动作
2.鼠标悬停
鼠标悬停弹出下栏菜单是一个常见的功能设计
move_to_element()方法可以模拟鼠标悬停的动作,其用法与context_click()相同。
3.鼠标双击操作
double_click()方法用于模拟鼠标双击操作。
4.鼠标拖放操作
drag_and_drop(coure,target)在源元素上按住鼠标左键,然后移动到目标元素上释放。
1.soure()鼠标拖放的源元素。
2.target:鼠标释放的目标元素
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get("http://192.168.10.61:1080/")
#定位到要右击的元素
right_click = driver.find_element_by_xpath("/html/body/nav/ul/li[5]/a")
#对定位到的元素执行鼠标右键操作
ActionChains(driver).context_click(right_click).perform()
above = driver.find_element_by_xpath("/html/body/nav/ul/li[1]/a")
#对定位的元素执行悬停操作
ActionChains(driver).move_to_element(above).perform()
#定位到要悬停的元素
double_click=driver.find_element_by_xpath("/html/body/nav/ul/li[2]/a")
#对定位的元素执行双击操作
ActionChains(driver).double_click(double_click).perform()
#定位元素的原位置
element = driver.find_element_by_xpath("/html/body/nav/ul/li[3]/a")
#定位元素要移动到的目标位置
target = driver.find_element_by_xpath("/html/body/nav/ul/li[4]/a")
#执行元素的拖放操作
ActionChains(driver).drag_and_drop(element,target).perform()
driver.quit()
selenium-Python之鼠标事件的更多相关文章
- Selenium WebDriver 中鼠标事件(全)
Selenium WebDriver 中鼠标事件(全) 鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driv ...
- python+selenium三:鼠标事件与键盘事件
1.鼠标事件:# 每个模拟事件后需加.perform() 才会执行# context_click() 右击# double_click() 双击# drag_and_drop(source, targ ...
- python+selenium_鼠标事件
引言--在实际的web产品测试中,对于鼠标的操作,不单单只有click(),有时候还要用到右击.双击.拖动等操作,这些操作包含在ActionChains类中. 一.ActionChains类中鼠标操作 ...
- Selenium WebDriver 中鼠标事件
鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driver);action.click();// 鼠标左键在当 ...
- Selenium+Java(九)Selenium键盘与鼠标事件
一.键盘事件 ctrl+a driver.findElement(By.id("kw")).sendKeys(Keys.CONTROL, "a"); ctrl+ ...
- Selenium WebDriver中鼠标事件
鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driver);action.click();// 鼠标左键在当 ...
- selenium+python 移动鼠标方法
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver=we ...
- selenium 3.0鼠标事件 (java代码)
注意:ActionChains下相关方法在当前的firefox不工作,建议使用谷歌浏览器. public static void main(String[] args) throws Interrup ...
- 【Selenium专题】鼠标键盘事件
引用包来自selenium-java-2.23.1.jar 调用以下代码时,需要引入actions类,以java为例: import org.openqa.selenium.interactions. ...
- Python+Selenium学习--鼠标事件
场景 前景讲解了鼠标的click()事件,而我们在实际的web产品测试中,有关鼠标的操作,不仅仅只有单击,有时候还包括右击,双击,拖动等操作,这些操作包含在ActionChains类中. Action ...
随机推荐
- html锚点实现的方法
1 通过id <a href="#div1"> 通过id获取锚点</a> <div style=" height:200px; width: ...
- TextMode="Password" 赋值(小技巧)
TextMode="Password"不能在后台直接向前台赋值,但是可以用js赋值. txtUserPassword.Attributes.Add("value" ...
- 【转】C/C++使用心得:enum与int的相互转换
https://blog.csdn.net/lihao21/article/details/6825722 如何正确理解enum类型? 例如: enum Color { red, white, blu ...
- java8--List转为Map、分组、过滤、求和等操作
利用java8新特性,可以用简洁高效的代码来实现一些数据处理~ 定义1个Apple对象: public class Apple { private Integer id; private String ...
- Java判断一个数是不是快乐数
快乐数的定义: 快乐数(happy number)有以下的特性: 在给定的进位制下,该数字所有数位(digits)的平方和,得到的新数再次求所有数位的平方和,如此重复进行,最终结果必为1. 以十进制为 ...
- 451. Sort Characters By Frequency (sort map)
Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ...
- HDU5122【水】
题意: 有n个数,然后按照冒泡排序的手段,只能往后移,然后问你最小几轮可以实现1-n 思路: 后边有比他小的数的话就一定要到后面去 求一下有多少个 PS: 如果还可以往前移,那么我们可以求一个最大确定 ...
- MongoDb 创建用户以及其他版本造成的一些问题
问题:require auth data to have schema version 3 but found 1 这是可以查看如下链接: http://stackoverflow.com/quest ...
- 2012 Noip提高组 Day1
1262. [NOIP2012] Vigenère 密码 ★ 输入文件:vigenere.in 输出文件:vigenere.out 简单对比时间限制:1 s 内存限制:128 MB [ ...
- day04 Calendar类