airtest-selenium


想用airtest的圖像識別功能,完成web端的UI自動化。

先實現一個小案例:

1、airtest+selenium-無頭瀏覽器

1 from airtest_selenium.proxy import WebChrome
2 
3 chrome_options = webdriver.ChromeOptions()
4 chrome_options.add_argument('disable-infobars')
5 chrome_options.add_argument('--headless')  # 無頭
6 chrome_options.add_argument("--no-sandbox")
7 driver = WebChrome(options=chrome_options)

 

 2、現在airtestIDE中錄制腳本

 

 

 3、把airtest IDE中的腳本復制到pycharm里,還需要修改下assert_template里的圖片保存位置。其他的一致

1  try:
2             self.driver.assert_template(Template(r"./../../data/airtest_picture/tpl1634889964329.png", record_pos=(0.169, -0.068), resolution=(3840, 1083), threshold=0.9), "頁面上存在百度圖片")
3             # record_pos:圖片坐標對應手機屏幕中心點的偏移值相對於手機分辨率的百分比,匹配時會優先匹配這附近的畫面
4             # resolution: 分辨率。當腳本執行時的手機不是錄制時的手機時,Airtest會對屏幕截圖按照分辨率進行縮放,最大程度兼容跨分辨率匹配
5             # threshold:識別閾值
6  except AssertionError:
7             print("斷言失敗")

 

部分參數含義:

 

  • record_pos:圖片坐標對應手機屏幕中心點的偏移值相對於手機分辨率的百分比,匹配時會優先匹配這附近的畫面
  •  resolution: 分辨率。當腳本執行時的手機不是錄制時的手機時,Airtest會對屏幕截圖按照分辨率進行縮放,最大程度兼容跨分辨率匹配
  •  threshold:識別閾值,浮點類型,范圍是[0.0, 1.0],默認0.7
  • target_pos: 圖片點擊位置,整型,默認為5,即圖片的中心點
  • rgb: 是否開啟彩色識別,Bool類型,默認False。rgb=False時,Airtest會先將圖像轉為灰度圖再進行識別;為True時,指定使用彩色圖像進行識別。
    •   一般情況下,我們都用默認的False即可,但假如畫面上有多個形狀相同顏色不同圖片時,就要設為True。

 

    • 是當識別可信度=>0.7時就認為是匹配的。對於計算機來說,不存在2張完全一樣的圖片,計算機只能告訴你2張圖片的相似程度。比如相似度是0.9(90%)就是比較像,相似度是0.5(50%)就是不太像。計算機只會告訴你相似度,那這2張圖算不算匹配,是由人通過閾值決定的。比如我們說只要相似度70%以上,就算是一樣的。

  

 


免責聲明!

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



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