【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')

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM