使用Appium進行微信公眾號自動化測試


  1. 查看Android的webview視圖版本:手機鏈接電腦后在電腦Chrome打開頁面chrome://inspect/#devices查看Android的Chrome內核版本
     
     
  2. 下載與該版本相對應的ChromeDriver.exe替換掉Appium目錄下的ChromeDriver.exe,路徑:C:\Users\miduo\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win\請根據個人安裝情況找到文件並替換。
  3. 代碼調整:
    實例化Remote時需要添加一個配置:'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
desired_caps = {
    'platformName': 'Android', 'fastReset': 'false', 'deviceName': "391dda45", 'appPackage': 'com.tencent.mm', 'appActivity': '.ui.LauncherUI', 'fullReset': 'false', 'unicodeKeyboard': 'True', 'resetKeyboard': 'True', "noReset": True, "fullReset": False, "fastReset": False, 'chromeOptions': { 'androidProcess': 'com.tencent.mm:tools' } # 這句很重要 'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'} } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) …… # 進入微信公眾號頁面的操作 # 點擊鏈接進入微信公眾號之后,需要切換上下文(webview),如果不能理解,則可以把他看成Iframe print(driver.contexts) #打印查看當前頁面有多少webview driver.switch_to.context("WEBVIEW_com.tencent.mm:tools") # 切換 # 如果切換后存在多個handle,則需要判斷當前handle對不對,不對的話需要切換到正確的句柄 while True: if PageElement("a", "tag").entity(a.driver, True): break else: a.driver.switch_to.window(a.driver.window_handles[-1]) print(driver.page_source) #打印html頁面源代碼 # 切換后實質上就是Selenium使用操作公眾號了(本質就是一個Html), # 當然如果需要跳回到App中操作,則driver.switch_to.context("NATIVE")切換會默認的視圖進行操作。 
  1. 微信公眾號元素定位,因為使用uiautomatorviewer.bat工具無法定位到微信公眾號的頁面元素,要進行微信公眾號的元素定位,有幾種方案:
  • 手機鏈接電腦后在電腦Chrome打開頁面chrome://inspect/#devices並選擇公眾號的webview點擊下方inspect鏈接,但第一次使用會鏈接到谷歌,所以需要翻牆才能正常使用
  • 找開發拿頁面源文件進行定位。
  • 如果開發無法提供源文件,則使用driver.page_source將源代碼在本地生成html文件本地打開。


作者:bilibala_
鏈接:https://www.jianshu.com/p/04116183a76c
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

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



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