七、appium自動化測試之H5頁面測試


參考鏈接

https://testerhome.com/topics/7866

https://sutune.me/2018/04/30/appium-h5/

chromedriver下載地址:https://chromedriver.chromium.org/downloads

測試環境准備

1.PC端安裝chrome,手機端安裝谷歌瀏覽器(部分品牌應用商店可能會沒有,可以安裝應用寶,再到應用寶上安裝google瀏覽器,或者PC端應用寶內下載。不太清楚這個有什么用途,我不按安裝也是可以運行的。)

2. 打開webview調試模式

這里以微信為例,訪問debugx5.qq.com開啟調試模式。

或者在app中配置如下代碼(在WebView類中調用靜態方法setWebContentsDebuggingEnabled):

if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.KITKAT) { 
WebView.setWebContentsDebuggingEnabled(true);
}

3.瀏覽器輸入 chrome://inspect/devices#devices,可以看到當前webview頁面,如果獲取不到可以刷新下,或者調試模式未打開。

代碼准備

desired_caps_a = {'platformName': "Android",
                      'platFormVersion': "10",
                      'deviceName': "dd",
                      'udid': "648d4f29",
                      # 'automationName': "UiAutomator1",
                      'noReset': True,
                      'unicodeKeyboard': True,
                      'resetKeyboard': True,
                      'appPackage': "com.tencent.mm",
                      'appActivity': "com.tencent.mm.ui.LauncherUI",
                      'chromedriverExecutable': r"C:\Users\v_yddchen\Desktop\chromedriver_win32 77.0\chromedriver.exe",
                      'chromeOptions': {'androidProcess': "com.tencent.mm:toolsmp"}  # webview的進程名字,不然會報錯

 

# 測試獲取H5元素
    my_logging.debug(device_a.contexts)
    device_a.find_element_by_android_uiautomator('new UiSelector().text("Cc")').click()
    device_a.find_element_by_android_uiautomator('new UiSelector().textContains("警惕")').click()
    WebDriverWait(device_a, 20).until(lambda x: x.find_element_by_android_uiautomator('new UiSelector().text("騰訊新聞")'))
    my_logging.debug(device_a.contexts)
    device_a.switch_to.context("WEBVIEW_com.tencent.mm:toolsmp")
    time.sleep(3)
    my_logging.debug(device_a.current_context)

 

錯誤

運行上述代碼報錯了

unknown error: Failed to get PID for the following process: com.tencent.mm

 

 

解決方法:

1.有說是appiumd的chromedriver版本不對,雖然不太認同,但是我嘗試了一下

設備:oppo reno android 9 webdriver 70.0.3538.110

PC端chrome版本81.0.4044.117   手機端chrome同樣版本 81.0.4044.117  

appium webview的版本78.0.3904.62

 ...\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win的路徑下,更換chromedriver的版本,或者初始化時

chromedriverExecutable指定chromedriver的路徑
更換chromedriver版本 81、78、70都是一樣的報錯(有點懷疑源碼有啥問題,github上搜到了一些蛛絲馬跡,等我再翻翻)。

2.更換了一台設備 oppo findx2 Android 10  webview 77.0.3865.92

以上代碼運行成功。

奇怪的是,不同手機輸出的contexts是不同的。

oppo reno android 9 webdriver 70.0.3538.110

 

  oppo findx2 Android 10  webview 77.0.3865.92

 

 3.確定appium的chromedriver版本的決定性因素

 oppo findx2 Android 10  webview 77.0.3865.92

 

 

更換appium chromedriver的版本為73,低於系統webdriver和app的webview版本,運行提示出錯

 

 如果chromedriver的版本為77,運行成功。

設置為81或者78,運行失敗。明確報錯chrome version問題是很好解決的。

 


免責聲明!

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



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