【pyautogui】使用pyautogui替代selenium,图像识别进行web自动化测试--基于python语言
由于typewrite()函数无法输入中文,所以事先把“只宅不技术”复制到了粘贴板,输入时候粘贴一下就行,将截图与代码放置在同一路径下【需要注意,整个屏幕上只能有一个火狐的图标,不然会报错】,并不建议使用pyautogui进行web自动化测试,因为元素的ui一旦有长宽变化,或者风格的变化,执行时就会发生异常,仅当学习使用。以使用selenium打开百度,并在输入框输入“只宅不技术”,之后点击搜索为
这里演示一下使用pyautogui替代selenium进行web自动化测试,并不建议使用pyautogui进行web自动化测试,因为元素的ui一旦有长宽变化,或者风格的变化,执行时就会发生异常,仅当学习使用
以使用selenium打开百度,并在输入框输入“只宅不技术”,之后点击搜索为例
代码如下:
-
#coding=utf-8 -
from selenium import webdriver -
import time -
#打开火狐浏览器 -
driver=webdriver.Firefox() -
#打开百度 -
driver.get("https://www.baidu.com") -
time.sleep(2) -
#找到输入框输入 只宅不技术 -
driver.find_element_by_id("kw").send_keys(u'只宅不技术') -
#点击搜索框 -
driver.find_element_by_id("su").click()

若要使用pyautogui替代selenium,需要先进行截图,然后通过图像识别操作
首先需要利用截图工具进行截图,比如QQ就可以进行截图,需要截的图片有
1、火狐浏览器的图标
,将其命名为firefox.png
2、输入url的地址框
,将其命名为url.png
3、进行搜索的输入框
,将其命名为kw.png
4、进行搜索的搜索按钮
,将其命名为su.png
由于typewrite()函数无法输入中文,所以事先把“只宅不技术”复制到了粘贴板,输入时候粘贴一下就行,将截图与代码放置在同一路径下【需要注意,整个屏幕上只能有一个火狐的图标,不然会报错】
代码如下:
-
import pyautogui -
import time -
#定义图像识别双击事件 -
def mouseDoubleClick(image): -
x,y=pyautogui.locateCenterOnScreen(image) -
pyautogui.click(x,y,clicks=2,interval=0.2,duration=0.2,button='left') -
#定义单击事件 -
def mouseClick(image): -
x,y=pyautogui.locateCenterOnScreen(image) -
pyautogui.click(x,y,clicks=1,interval=0.2,duration=0.2,button='left') -
#双击火狐浏览器的图标 -
mouseDoubleClick(image='firefox.png') -
time.sleep(3) -
#双击浏览器的url地址框 -
mouseClick(image='url.png') -
#在地址框输入百度地址,然后回车 -
pyautogui.typewrite('www.baidu.com') -
pyautogui.keyDown('enter') -
pyautogui.keyUp('enter') -
time.sleep(2) -
#双击搜索框 -
mouseClick(image='kw.png') -
#将只宅不技术粘贴到搜索框 -
pyautogui.hotkey('ctrl','v') -
time.sleep(2) -
#点击搜索 -
mouseClick(image='su.png')

总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。
更多推荐




所有评论(0)