zoukankan      html  css  js  c++  java
  • 【pyautogui】使用pyautogui替代selenium,图像识别进行web自动化测试--基于python语言

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

     

  • 相关阅读:
    德阳机场大巴
    “以前进行的程序安装创建了挂起的文件操作。运行程序之前,必须重新起动计算机。”的解决办法
    Web程序中网页间数据传递方法小结
    转向姚BLOG
    用ASP.NET在IIS中创建虚拟目录
    TreeView 点击Nodes属性出现“指定的转换无效”错误
    该页正在访问其控制范围之外的数据。这有些危险。是否继续?
    JS的Trim
    JS简明中文教程
    电子数据交换
  • 原文地址:https://www.cnblogs.com/ffrs/p/11358308.html
Copyright © 2011-2022 走看看