首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Selenium实现复制粘贴功能

Selenium实现复制粘贴功能

作者头像
Altumn
发布于 2019-10-21 09:08:53
发布于 2019-10-21 09:08:53
5.2K00
代码可运行
举报
运行总次数:0
代码可运行



梦里寻她千百度,蓦然回首,那人却在灯火阑珊处... ----By Altumn

写在前面

日常的UI自动化测试中,有时候会用到复制粘贴功能。

按照以往的操作方法,可能第一时间想到模拟键盘输入“Ctrl+C”和“Ctrl+V”。

在此之前也写过一篇包含此功能的文章:Selenium键盘操作事件

但是针对一些需要通过赋值实现复制粘贴功能的情景,存粹的模拟键盘输入就无法实现想要的效果了。

python提供了第三方库pywin32,该库中包含剪贴板win32clipboard模块,结合selenium可以实现日常UI自动化测试中的一些功能。

本文的主要内容是:

如何在Windows下利用python的第三方库实现复制粘贴功能。

安装pywin32

在python环境配置完好的情况下,并且已经安装了python的包管理工具pip。

可以直接通过命令pip install pywin32进行在线安装。

如下图所示:

安装成功,如下所示:

如果输入命令pip install pywin32无法正常安装并且提示以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
You should consider upgrading via the ' python -m pip install --upgrade pip' command.

则需要在cmd命令行通过以下命令升级pip工具:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python -m pip install --upgrade pip

升级完成后,重新打开CMD命令行输入pip install pywin32进行在线安装pywin32。

win32clipboard的应用

pywin32安装完成以后,可以直接通过import命令导入包win32clipboard。

在此结合Selenium做以下操作应用:

1.打开网址www.testclass.cn首页;

2.定义参数并且赋值到复制粘贴板win32clipboard;

3.读取粘贴板win32clipboard中的内容;

4.在搜索框通过模拟键盘功能粘贴到文本框;

5.通过模拟键盘功能查询内容。

详细操作代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#clipboard.py
#www.testclass.cn
#Altumn
import time
import win32clipboard
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver=webdriver.Firefox()
driver.get("https://www.testclass.cn/")
driver.implicitly_wait(10)
driver.maximize_window()
#设置复制内容Text
Text="selenium"
#打开粘贴板
win32clipboard.OpenClipboard()
#清空粘贴板
win32clipboard.EmptyClipboard()
#设置复制的内容为Text
win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT,Text)
#关闭粘贴板线程
win32clipboard.CloseClipboard()
#打开粘贴板
win32clipboard.OpenClipboard()
#获取粘贴板内容,传给参数data
data=win32clipboard.GetClipboardData(win32clipboard.CF_TEXT)
#输出粘贴板内容
print(data)
#需要关闭一下粘贴板线程
win32clipboard.CloseClipboard()
driver.find_element_by_id("search").click()
#在网站主页输入Control+v模拟粘贴,然后执行搜索操作。
driver.find_element_by_id('search').send_keys(Keys.CONTROL, 'v')  
time.sleep(2)
#通过回车键来代替单击操作,实现查询。
driver.find_element_by_id("search").send_keys(Keys.ENTER)
time.sleep(2)
driver.quit()

最终执行效果如图所示(此效果图是至今日关于“selenium”主题相关的部分文章截图):

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试testclass 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
selenium初探selenium初探
selenium初探 selenium简介与安装 简介 selenium是一个网站的自动化测试库,但由于其具有大量的自动化库而且可以调用浏览器,常常被用于爬虫技术。也正是因为其是调用浏览器的,这几乎成了一个无解的爬虫。在神经网络领域需要大量的数据集,爬虫是一种快速获得数据的方法,这也正是我学习这个库的动机 安装 selenium安装 使用pip install -U selenium即可 Diver安装 selenium要调用各种浏览器需要对应的浏览器driver,我将使用chrome测试,测试成功后转为无
月见樽
2018/04/27
1.4K0
windows 下使用 python3 复制拷贝图片到剪切板(剪贴板、粘贴板)
windows 下,使用 python3 把图片 拷贝/复制 到 系统的剪贴板/剪切板/粘贴板
卓越笔记
2023/02/17
2.1K0
2万字带你了解Selenium全攻略
今天带大家一起学(复)习模拟浏览器运行的库Selenium,它是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera和Edge等。
可以叫我才哥
2021/12/28
3.5K0
2万字带你了解Selenium全攻略
Selenium文件上传
日常的UI自动化测试过程中,经常会遇到文件上传的业务操作。对于通过input标签实现的上传功能, 我们可以直接利用Selenium提供的方法send_keys() 实现文件上传。这种文件上传实现方式是将本地文件的路径作为一个值放在input标签中,然后通过form表单将这个值提交给服务器。 本文将针对input标签示范自动化执行文件上传功能。
Altumn
2019/10/21
1.2K0
Selenium文件上传
Python+Selenium3最新配置
由于W3C标准化以及各大浏览器厂商的积极跟进,自WebDriver 3.0 之后,Selenium不再提供默认的浏览器支持。换言之,不再默认地支持Firefox了。用FireFox测试, 就需要用到Mozilla自己的驱动才行。
py3study
2020/01/13
6540
Selenium元素定位
find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_tag_name() find_element_by_link_text() find_element_by_partial_link_text() find_element_by_xpath() find_element_by_css_selector() 在这里将对各种元素定位方式统一使用百度首页进行示例,详细操作步骤有以下内容: 1.打开浏览器,进入百度首页(www.baidu.com); 2.百度页面输入关键字 www.testclass.cn 进行搜索; 3.关闭浏览器; 首先,通过前端工具(火狐浏览器的Firebug)或者直接按F12进入开发者模式查看具体前端代码:
Altumn
2019/10/21
1.3K0
Selenium元素定位
Python 实现指定窗口置顶激活
通过Python实现对特定窗口的置顶操作以及对特定窗体发送按键,这里需要安装一个第三方pip包,执行命令pywin32安装好以后,我们运行试试。
王 瑞
2022/12/28
2.9K0
Selenium常用的元素等待方法
日常的UI自动化测试,单步调试的时候元素可以定位到,并且可以正常操作,但是在跑测试案例流程的时候反而报错。这时就需要考虑是否界面的切换,或者功能的跳转缓慢导致元素未加载完成就执行了操作,所以我们需要加上元素等待。WebDriver提供了几种类型的等待:强制等待、显式等待和隐式等待。
Altumn
2019/10/21
1.9K0
[Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、鼠标操作)
Selenium是一款用于测试Web应用程序的经典工具,它直接运行在浏览器中,仿佛真正的用户在操作浏览器一样,主要用于网站自动化测试、网站模拟登陆、自动操作键盘和鼠标、测试浏览器兼容性、测试网站功能等,同时也可以用来制作简易的网络爬虫。
Eastmount
2021/12/02
5.4K0
[Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、鼠标操作)
UI自动化控制微信发送文件【解决了一个无人回答的难题,Pywin32设置文件到剪切板】「建议收藏」
大家好,我是小小明。前面我在《UI自动化控制PC版微信》该系列文中更新了控制微信发送图片的方法。根据部分群友实际工作的需要,本文将分享如何控制微信发送文件。
全栈程序员站长
2022/09/08
1.2K0
UI自动化控制微信发送文件【解决了一个无人回答的难题,Pywin32设置文件到剪切板】「建议收藏」
selenium 模拟键盘事件 复制粘贴、右键、回车等
#coding=utf-8 ''' selenium ''' from selenium import webdriver as wd import time bc=wd.Chrome(executable_path='f:\\chromedriver') #bc=wd.Ie(executable_path='f:\\IEDriverServer') bc.get('https://www.sogou.com') #模拟键盘事件 from selenium.webdriver.common.keys im
用户8449980
2021/07/11
2.4K0
Python编写渗透工具学习笔记一 | 0x07 Python实现键盘记录器
0x07 Python实现键盘记录器 这份代码比较经典,里面的注释也写的很详细,我也就直接放出来给大家一起学习一下。 简单说一说 我们定义了pyhook的hookmanager管理器,然后将我们自定义的回调函数keystroke与keydown事件进行了绑定。之后我们通过pyhook勾住了所有的按键事件,然后继续消息循环,当目标按下键盘上的一个键时,我们的keystroke函数就会被调用,它唯一的一个参数就是触发这个事件的对象。在这个函数中,我们要做的第一件事是检查用户是否切换了窗口,如果切换了窗口,我们需
安恒网络空间安全讲武堂
2018/02/06
2.4K0
Python编写渗透工具学习笔记一 | 0x07 Python实现键盘记录器
Python 技术篇-用pywin32库实现读写剪贴板
我们需要 pywin32 库,没有的话可以看下安装教程。 pywin32库安装教程
小蓝枣
2020/09/23
1.3K0
Selenium必须掌握的元素定位方法
Web端的UI自动化测试,目前使用比较多的就是Python+Selenium。当前一些UI自动化测试工具也是基于Selenium做开发的。 最近经常有童鞋后台询问selenium元素定位方法,其实网上学习资料很多,只要你肯动手,都可以搜的到。元素定位对于自动化测试来说是比较重要而且繁琐的一件事。接下来就来讲一下如何使用webdriver提供的基本元素定位方法。 再次声明:本站点已经和百度、必应、谷歌等各大搜索引擎达成长期的战略合作协议,你有任何疑问都可以通过以上公司提供的免费服务得到解答。
Altumn
2019/10/20
5K0
Selenium操作Frame中的页面元素
在Web应用中经常会遇到网页中嵌套多个Frame框架的情况。这种情况下,如果直接去定位嵌套在Frame页面中的元素就会抛出NoSuchElementException异常。所以在操作嵌套在Frame框架上页面元素前,需要将页面焦点切换到Frame中。Selenium提供的switch_to.frame()方法可以实现Frame之间的跳转。
Altumn
2019/10/21
2.8K0
Selenium操作Frame中的页面元素
使用selenium 的笔记总结
a. 其中 '//' 表示从匹配的节点开始找,也就是相对路径,这也是用的最多的一种情况. b. [@class='class_name'] 表示元素的属性值,在这里表示元素的class 属性的值为 class_name. 如果是多个属性进行限制,那么可以追加多个 [@attribute_name='attribute_value']来限制,从而保证可以匹配到相应的元素 c. 支持多层路径,上面路径基础上可以追加,比如: "//div[@class='class_name']/button[@type='submit']" , 如果是查找 节点元素,那么后面用类似: "//div[@class='class_name']/.." 的格式,这种情况在实际使用中会常遇到. d. input, button 等元素不支持class 属性,这个原因不清楚,但是使用的时候加上class 属性就找不到元素. div等元素支持class 属性,如果通过特定属性找不到,尝试更改属性的值来进行查找 e. 如果是使用xpath, 并通过使用text 属性来进行元素查找,那么表达式格式如下:
qsjs
2021/03/17
1.1K0
Selenium定位一组元素
文末也有关于如何定位一组元素的方法。不过有的小伙伴反映不方便查找,现把该部分内容单独列出。
Altumn
2019/10/21
8240
Python|gui编程之用pywin32实现“消息轰炸机”
今天,小编给大家带来一个好玩的东西,它可以自动的给你的QQ好友发送消息,并且如题目所述达到一个“轰炸”的效果,实际上就是刷屏,所以也可以叫它“刷屏神器”,代码很简单,也是通过python编程实现,只要会一点python都能学会。
算法与编程之美
2020/04/28
3.4K0
python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息
网站复杂度增加,爬虫编写的方式也会随着增加。使用Selenium 可以通过简单的方式抓取复杂的网站页面,得到想要的信息。
1_bit
2020/10/23
2.4K0
python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息
如何使用Python编写简易木马程序
这次我们使用Python编写一个具有键盘记录、截屏以及通信功能的简易木马。依然选用Sublime text2 +JEDI(python自动补全插件)来撸代码。
知识与交流
2021/04/02
3.6K0
如何使用Python编写简易木马程序
相关推荐
selenium初探selenium初探
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档