Selenium实现复制粘贴功能
写在前面
日常的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
作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可
文章评论(0)