Selenium实现复制粘贴功能

2019年6月10日 2.61k 次阅读 0 条评论 1 人点赞

写在前面

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

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

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

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

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

本文的主要内容是:

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

安装pywin32

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

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

如下图所示:

安装成功,如下所示:

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

You should consider upgrading via the ' python -m pip install --upgrade pip' command.

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

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.通过模拟键盘功能查询内容。

详细操作代码如下所示:

#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”主题相关的部分文章截图):

温馨提示:欢迎加入软件测试学习交流QQ群:670250199

风里云里,我在这里等你!

文章评论(0)