这里演示一下使用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')

最新文章

  1. Linux0.11内核--加载可执行二进制文件之2.change_ldt
  2. 每天一个percona 工具 --- pt-kill
  3. 简易c语言文法
  4. [deviceone开发]-UI组件的动画示例
  5. 9.5---括号是否有效(CC150)
  6. python数据结构与算法——图的基本实现及迭代器
  7. <<人性的弱点>>读书笔记
  8. datagridview 用法
  9. linux打开文件数量的查看方法
  10. 显示当前一个礼拜的日期 new Date()
  11. Java多线程3:Thread中start()和run()的区别
  12. ExtJS4.2学习(14)基于表格的扩展插件(2)(转)
  13. 【原创】不用封装jar包 直接引入工程使用的方法(类似android的 is Library功能)
  14. hdu 4464 水
  15. MFC六大关键技术
  16. 201521123070 《JAVA程序设计》第14周学习总结
  17. @synchronized(self)
  18. 25.创业真的需要app吗?真的需要外包吗?
  19. openstack快速安装之packstack
  20. 基于vue技术的企业移动办公系统的设计与实现

热门文章

  1. gradle + mybatis 复制xml等配置文件到输出目录
  2. egret 发布ios记录
  3. Qt和其它GUI库的对比
  4. python引用库异常总结
  5. Linux架构之Nginx之HTTPS
  6. 原生JS 将时间转换成几秒前,几分钟前…常用于评论回复功能
  7. ESP8266-向物联网云平台发送数据--dweet
  8. tomcat 启动一傘而过问题
  9. ng-template、ng-content、ng-container
  10. 前端js怎么实现大文件G级的断点续传(分块上传)和分段下载