前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium实现复制粘贴功能

Selenium实现复制粘贴功能

作者头像
Altumn
发布2019-10-21 17:08:53
4.8K0
发布2019-10-21 17:08:53
举报



梦里寻她千百度,蓦然回首,那人却在灯火阑珊处... ----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
复制
You should consider upgrading via the ' python -m pip install --upgrade pip' command.

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

代码语言:javascript
复制
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
复制
#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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档