51Testing软件测试论坛

标题: appium 做小程序自动化,切换 handle 和 context 到小程序后,使用 find_elements ... [打印本页]

作者: 测试积点老人    时间: 2021-3-19 11:47
标题: appium 做小程序自动化,切换 handle 和 context 到小程序后,使用 find_elements ...
appium 做小程序自动化,切换 handle 和 context 到小程序后,使用 find_elements 方法查找元素时,appium 提示 400,无效参数
appium version:1.20.1
微信版本:安卓 8.0.1
微信的 weiview 版本:77.0.3865.120
导入的 chromedriver 版本:77.0.3865.40
使用大一点的 chromedriver 版本就报错了,78.0.3904.105。难道要使用 77.0.3865.120 的 chromedriver 版本?但是我没找打。。。
  1. # 导入
  2. from appium import webdriver

  3. # 初始化appium
  4. caps["deviceName"] = "android"
  5. caps["appPackage"] = "com.tencent.mm"
  6. caps["appActivity"] = "com.tencent.mm.ui.LauncherUI"
  7. caps["autoGrantPermissions"] = "true"
  8. caps["chromedriverExecutable"] = "/Users/kid/drivers/webdrivers/chrome/77.0.3865.40/chromedriver"
  9. caps["skipDeviceInitialization"] = "true"
  10. caps["noReset"] = "true"
  11. caps["udid"] = "DUPNW17920003090"
  12. caps["chromeOptions"] = {"androidProcess": "com.tencent.mm:appbrand0"}
  13. caps["BrowserName"] = ""
  14. caps['recreateChromeDriverSessions'] = True
  15. caps['newCommandTimeout'] = 100
  16. caps['automationName'] = "uiautomator2"

  17. self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
  18. self.driver.implicitly_wait(10)

  19. # 打开小程序,省略

  20. self.driver.switch_to.context("WEBVIEW_com.tencent.mm:appbrand0")

  21. hans = self.driver.window_handles

  22. self.driver.switch_to.window(hans[-1])

  23. # switch context、window后,是可以打印小程序页面代码的
  24. print(self.driver.page_source)



  25. # 查看小程序元素
  26. self.driver.find_elements("class name", "list-name")
复制代码
  1. 这是appium的日志

  2. [W3C (3489199f)] Driver proxy active, passing request on via HTTP proxy
  3. [debug] [WD Proxy] Matched '/wd/hub/session/3489199f-0cb2-472a-98d1-323142ecad99/elements' to command name 'findElements'
  4. [debug] [WD Proxy] Proxying [POST /wd/hub/session/3489199f-0cb2-472a-98d1-323142ecad99/elements] to [POST http://127.0.0.1:8013/wd/hub/session/15f2559115fa272bd39691e131dfbcba/elements] with body: {"using":"class name","value":"list-name"}
  5. [WD Proxy] Got response with status 400: {"value":{"error":"invalid argument","message":"invalid argument: invalid locator\n  (Session info: chrome=77.0.3865.120)","stacktrace":"0   chromedriver                        0x000000010886af09 chromedriver + 3694345\n1   chromedriver                        0x00000001087f7fd3 chromedriver + 3223507\n2   chromedriver                        0x000000010859758f chromedriver + 730511\n3   chromedriver                        0x0000000108507c74 chromedriver + 142452\n4   chromedriver                        0x00000001085314d1 chromedriver + 312529\n5   chromedriver                        0x00000001085240bd chromedriver + 258237\n6   chromedriver                        0x000000010852f711 chromedriver + 304913\n7   chromedriver                        0x0000000108524383 chromedriver + 258947\n8   chromedriver                        0x00000001084ff23d chromedriver + 107069\n9   chromedriver                        0x00000001085001d5 chromedriver + 111061\n10  chromedriver                        0x000000010882607f chr...
  6. [debug] [W3C] Matched W3C error code 'invalid argument' to InvalidArgumentError
  7. [HTTP] <-- POST /wd/hub/session/3489199f-0cb2-472a-98d1-323142ecad99/elements 400 26 ms - 1785
复制代码
求解!!!!



作者: qqq911    时间: 2021-3-22 10:56
还是要版本互相兼容
作者: 郭小贱    时间: 2021-3-22 11:23
app测试接触的不多... 来学习下吧。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2