python鼠标事件 详解_Python selenium键盘鼠标事件实现过程详解

引言

----在实际的web测试工作中,需要配合键盘按键来操作,webdriver的 keys()类提供键盘上所有按键的操作,还可以模拟组合键Ctrl+a,Ctrl+v等。

举例:

#cording=gbk

import os

import time

from selenium import webdriver

from selenium.webdriver.common.by import By #导入by方法

from selenium.webdriver.common.action_chains import ActionChains ##对鼠标事件操作

from selenium.webdriver.common.keys import Keys # 对键盘事件操作

current_path=os.path.dirname(__file__)

firefox_path=current_path+"/../webdriver/geckodriver.exe"

driver=webdriver.Firefox(executable_path=firefox_path)

driver.get("http://www.baidu.com")

# 先输入百度

driver.find_element_by_id('kw').send_keys('百度')

time.sleep(3)

# 1.删除度

driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)

time.sleep(3)

#2.清空输入框,重新输入值

driver.find_element_by_id('kw').clear()

driver.find_element_by_id('kw').send_keys('安琪儿')

time.sleep(5)

# 3.ctrl+a 全选输入框里的内容

driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')

time.sleep(3)

# 4.ctrl+x 剪切输入框里的内容

driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')

time.sleep(3)

# 5. ctrl+v 粘贴剪切的内容

driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')

time.sleep(3)

# 6. 回车

driver.find_element_by_id('su').send_keys(Keys.ENTER)

time.sleep(3)

在实际的web产品测试中,对于鼠标的操作,不单单只有click(),有时候还要用到右击、双击、拖动等操作,这些操作包含在ActionChains类中。

ActionChains类中鼠标操作常用方法:

context_click() :右击

double_click() :双击

drag_and_drop() :拖动

move_to_element() :鼠标移动到一个元素上

举例:

#cording=gbk

import os

from selenium import webdriver

from selenium.webdriver.common.by import By #导入by方法

from selenium.webdriver.common.action_chains import ActionChains ##对鼠标事件操作

current_path=os.path.dirname(__file__)

firefox_path=current_path+"/../webdriver/geckodriver.exe"

driver=webdriver.Firefox(executable_path=firefox_path)

driver.get("http://127.0.0.1/zentao/user-login-L3plbnRhby9teS5odG1s.html")

mouse=ActionChains(driver) #创建一个鼠标对象

# element1=driver.find_element(By.XPATH,"//img[@src='/zentao/theme/default/images/main/zt-logo.png']") #Xpath利用属性定位

element1=driver.find_element(By.XPATH,"//img[contains(@src,'images/main/zt-logo.png')]") #xpath使用包含属性方法定位

mouse.context_click(element1).perform() #执行鼠标右击,.perform() 表示执行

element2=driver.find_element(By.XPATH,"//button[@type='button' and @class='btn' ]") #多属性定位

mouse.move_to_element(element2).perform() #移动到这个元素上

#对元素进行截图

driver.find_element(By.XPATH,"//button[@id='submit'][@type='submit']").screensh

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持龙方网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中webdriver_Python自动化学习--Webdriver中的常用方法

from selenium import webdriverdriver webdriver.Chrome()driver.get("https://www.baidu.com/")#WebDriver 中常用的一些方法"""(1) clear() 清楚文本 例:driver.find_element_by_id("kw").send_keys("测试学习")d…

mysql 1556_mysql导入时Error Code: 1556 - You can't use locks with log tables.

前几天数据库迁移,导入数据时发现报错,如下:Query:LOCK TABLES general_log WRITEError occured at:2011-07-08 10:22:12Line no.:10268Error Code: 1556 - You cant use locks with log tables.因为某些原因一直没有去解决这个问题,后来数据…

plupload怎么设置属性_腾达无线路由器怎么设置,这些是你要知道的

腾达无线路由器怎么设置1、联好线路:到你家的外网网线接路由器的WAN口,你的电脑连到路由器的LAN口(有四个,任意一个均可),给路由器接通电源。设置的时候,给路由器通电,一根网线直接连电脑和路由器的这个口就…

mysql centos 安装目录在哪_centos中如何查看mysql安装目录在哪

centos中查看mysql安装目录的方法:推荐教程:centos使用教程1、使用ps -ef|grep mysql命令查看:结果:root 17659 1 0 2011 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir/var/lib/mysql --socket/var/lib/mysql/mysql.sock …

mysql group by 规则_mysql 的group by 满足的规则要求:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/u011066470/article/details/97291377————————————————GROUP BY满足的规则:所有sele…

定义加密函数程序python_一个python自定义的加密解密函数

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。def encrypt(key,s):b bytearray(str(s).encode("gbk"))n len(b) # 求出 b 的字节数c bytearray(n*2)j 0for i in range(0,n):b1 b[i]b2 b1 ^ k…

dynamic 365 js 失去焦点_基于Auto.js的QQ好友动态秒赞系统

0.脑筋急转弯请问在什么情况下log(10) 10log(20) 20左滑查看答案 console.log(10) 是 10 console.log(20) 是 201.工具选…

scrapy框架_Python:Scrapy框架

“ Scrapy是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站…

mysql数据库二进制_Mysql数据库简单安装(二进制)

二进制安装:[rootlufengcentos ~]# mkdir /home/lufeng/tools -p[rootlufengcentos ~]# cd /home/lufeng/tools[rootlufengcentos tools]# rz[rootlufengcentos tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz[rootlufengcentos tools]# mkdir -p /applicatio…

python处理时间和日期_python时间和日期的处理

时间概念时间戳:格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数元组struct_time:python定义了一个时间类,包含9个属性:属性描述tm_year年tm_mon月,范围1~12tm_mday日&#…

python求两数之和的命令_数学建模:科学计算Python2小时-Python基础

这一部分主要面向数模活动中的python基础知识进行讨论作者系列文章(科学计算Python2小时)目录:李似:科学计算Python2小时-前言与目录​zhuanlan.zhihu.com首先要说明的是,目前常用的Python版本包括Python2和Python3,二者有一些语法…

python源码包安装_源码包安装python2.7.6和ipython1.2.1

1. CentOS 6.X的安装就不多说2.安装包Python2.7.6 和Ipython的下载官网都有,自行下载。注意,不要去卸载系统自带的python程序,在CentOS6.X中python为2.6.X的版本3.解压源码包tar xf Python-2.7.6.tar.xz -C /usr/local/ #解压pythontar xf…

c#+mysql图片存数据库_C#图片存入数据库及其读出显示

<1>将图片转换成二进制插入数据库FileStream fs new FileStream("D:\\Add.ico",FileMode.Open);byte[] imagebytes new byte[fs.Length];BinaryReader br new BinaryReader(fs);imagebytes br.ReadBytes(Convert.ToInt32(fs.Length)); //将图片转换成二进…

python编程计算前30项的和_Python 程序员需要知道的 30 个技巧

如果你让一个 Python 程序员说一下 Python 的优势&#xff0c;他会说简洁以及高可读是最有影响力的优势。为证明上述两点&#xff0c;在这个 Python 教程里&#xff0c;我们将聊聊许多基本的 Python 建议和技巧。我们从开始使用 Python 便收集这些有用的捷径(贴士与技巧)。分享…

python傅里叶逆变换_OpenCV-Python系列之傅里叶变换

傅里叶变换我们生活在时间的世界中&#xff0c;早上7:00起来吃早饭&#xff0c;8:00去挤地铁&#xff0c;9:00开始上班。。。以时间为参照就是时域分析。但是在频域中一切都是静止的&#xff01;可能有些人无法理解&#xff0c;我建议大家看看这个文章&#xff0c;写的真是相当…

空白世界地图打印版_洪恩识字卡1300字十字帖+绘本,可打印成册

洪恩识字卡电子版资源&#xff0c;共1300字&#xff0c;无拼音和升级版带拼音都有&#xff0c;可直接打印&#xff0c;可分享免费送我在app中无意洪恩识字这个宝藏app&#xff0c;识字是想着孩子能早日实现自由阅读&#xff0c;可是一直对着电子设备伤眼晴&#xff0c;于是找了…

transferto的流这么关闭_Java 9中InputStream的transferTo()方法的重要性?

在Java 9中&#xff0c;transferTo()方法已添加到InputStream类中。该方法已用于在Java中将数据从输入流复制到输出流。这意味着它将从输入流中读取所有字节&#xff0c;然后按读取顺序将字节写入输出流。语法public long transferTo(OutputStream out) throws IOException示例…

python的selenium模块博客园_selenium 模块的使用

一、为什么会用 selenium 模块&#xff1a;运用过程中遇到错误:Traceback (most recent call last):File "C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages\selenium\webdriver\common\service.py", line 76, in startstdinPIPE)File "C…

java三目运算_Java中的三目运算符 详解

对于有些选择分支结构,可以使用简单的条件运算符来代替. 如:if(amina;elseminb;可以用下面的条件运算符来处理min(a其中"(a条件运算符由两个符号组成"?"和":", 要求有3个操作对象,所以也叫它三目运算符,它是C语言中唯一的三目运算符.它的一般形式为:…

java exception子类_Java异常 Exception类及其子类(实例讲解)

C语言时用if...else...来控制异常&#xff0c;Java语言所有的异常都可以用一个类来表示&#xff0c;不同类型的异常对应不同的子类异常&#xff0c;每个异常都对应一个异常类的对象。Java异常处理通过5个关键字try、catch、finally、throw、throws进行管理。基本过程是用try包住…