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