Appium 使用 appium 进行 webview 的测试遇到的问题。

johnfad · 2015年01月13日 · 最后由 lim 回复于 2015年04月18日 · 2075 次阅读

预置条件:使用 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 中的文字呢?是我用的识别方法不对吗?

共收到 6 条回复 时间 点赞

els = self.driver.find_elements_by_xpath('//android.widget.TextView') 这步不对,你都到 webview 模式下了应该使用 web 的元素定位方式 如 xpath 应该是/html/div/div[3] 类似这样的

#1 楼 @panzhigang els = self.driver.find_elements_by_xpath('/html/head/title')
print len(els)
print els[0].text
嗯,我换成这样的话获取的 len 是 1.但是 els[0].text 内容为什么是空的呢?

@gaoxing200851 有 getTitle 这样的方法的吧

@gaoxing200851 去找个 body 中的元素试下

#4 楼 @panzhigang 已经搞定了,谢谢啊。

@gaoxing200851 请问怎么解决的呢?我也遇到同样的问题,driver.getPageSource() 停留在 webview 界面

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册