预置条件:使用 4.4.4 系统的 android 手机。

使用 appium 进行 webview 的测试时,遇到问题,问题描述如下:

  1. 通过 print driver.contexts 打印出来的是混合型 app。
  2. 通过 driver.switch_to.context('WEBVIEW') 进行转换。
  3. 通过 els = self.driver.find_elements_by_xpath('//android.widget.TextView') 想获取 webview 中的内容。

实际结果:一直停留在 webview 界面,无任何操作,并且过 60 秒到达 appium 的时间应用按了 home 键。

代码片段:
print driver.contexts
driver.switch_to.context('WEBVIEW')
els = self.driver.find_elements_by_xpath('//android.widget.TextView')
print len(els)
print els[0].text

appium 的 log 信息:

info: --> POST /wd/hub/session/ee2b3cf6-efa3-4bfe-93d9-05e61cf36001/elements {"u
sing":"xpath","sessionId":"ee2b3cf6-efa3-4bfe-93d9-05e61cf36001","value":"//andr
oid.widget.TextView"}
info: [debug] Proxying command to 127.0.0.1:9515
info: [debug] Making http request with opts: {"url":"http://127.0.0.1:9515/wd/hu
b/session/0c15293eb00d96ba09a36829af8334c4/elements","method":"POST","json":{"us
ing":"xpath","sessionId":"ee2b3cf6-efa3-4bfe-93d9-05e61cf36001","value":"//andro
id.widget.TextView"}}
info: [debug] Didn't get a new command in 60 secs, shutting down...
info: Shutting down appium session
info: [debug] Pressing the HOME button

我的问题是: 怎么才能对 webview 中进行操作,怎么获取 webview 中的文字呢?是我用的识别方法不对吗?


↙↙↙阅读原文可查看相关链接,并与作者交流