#4 楼 @fanlei1014 麻烦更新一下标题并把尽量详细的解决方案附到正文中,方便后面的人查看。谢谢!
在网上查到用 adb 命令可以切换输入法:
http://www.itcao.com/post_1291.html
但切换后会不会对 appium 输入有影响就不大清楚了。
那可能是多看的 app 没有开 web debug 了。
从日志上看,chromedriver 起来后 appium server 就没有收到 client 的任何请求(卡在 chromedriver 的开 session 这里了,appium 发送了开 session 的请求后 chromedriver 一直没有反应),所以 session timeout 退出了。
原因应该是因为切换 context 这个请求一直没有返回消息给 client 端,所以 client 一直停在切换 context 那一行等待 server 的返回消息,即切换 context 后的所有代码都没有执行过,所以你说的找元素和取源码都没有效果。
建议的解决方案:
这个就是我想让你做的封装啊。把你原来的 swipe 代码做成更通用的形式。
封装只是专业点的说法,说白了就是把你原来要几行代码干的活放到一个函数里一次性搞定嘛。
PS:这不能说是缺陷,是 webdriver api 没有这个方法而已。
#15 楼 @mzl19860128 这不是模拟器与真机的区别,是你的手机 ROM 和原版系统的区别。模拟器运行的是原版系统。
你再换个 4.4 的手机试试吧。
#13 楼 @mzl19860128 你升级后的 Android SDK Tools 版本是多少?应该至少 24 以上了。
确认版本够高后,你用个 4.4 的模拟器试试?
虽然可能性很低,但还有可能是真机的系统对 uiautomator 部分做了更改。如果 4.4 模拟器可以那就可以排除 uiautomatorviewer 的版本问题了。
#5 楼 @mzl19860128 build-tools 建议装多一个 19(4.4)以上的。
应该是升级没完全吧。你有把 sdk manager 里标记可以升级的 Tools 都升级了吗?
#8 楼 @mildshark 我也没别的意思,只是想告诉你这个问题你直接看原文地址就知道答案了。
原文在 Google Tester Blog 上,testerhome 也有转载过原文。
Appium 目前没有你提到的类似 robotium 的方法,而且后面也不一定会有,因为它要遵循 webdriver API 规范,目前规范里没有你提到的这个方法。
你可以封装一下,自己做个 scrollToSide 出来啊。
另外,麻烦加一下头像。。。
#6 楼 @mildshark 我有注明原文地址,你可以看看。
autoLaunch 配置为 false 是设计给手动 launch 被测应用这样的场景使用的(例如我测试场景下的被测应用需要跳转到另一个指定应用,因此需要安装两个应用,这时候默认只安装被测应用这种设计就不够用了)。手动 launch 的相关文档:
https://github.com/appium/appium/blob/89dbea6bcbbe17498206f61aeee243592ac7ac5d/docs/cn/writing-running-appium/appium-bindings.cn.md#%E5%90%AF%E5%8A%A8-launch
autoLaunch 的默认值是 true
#10 楼 @mildshark 模拟器没问题啊。只是模拟器的名字和 iOS 版本要对应起来。否则会找不到模拟器。
举个例子,有个模拟器 iPhone 6 ( 8.3 Simulator )
你必须选择 deviceName: iPhone 6, 然后 platformVersion: 8.3 ,否则可能起不来(它会自动把 deviceName 和 platformVersion 组合起来成为 iPhone 6 ( 8.3 Simulator ))
官网示例代码里面文件名带有 sauce 的都是给 sauce lab( Appium 背后的公司,拥有可以通过 appium 脚本进行测试的企业级测试云)用的。
你使用不带有 sauce 的示例代码就好了。
PS:麻烦下次发帖时遵循论坛排版要求,不要把所有内容揉在一起,看起来很不专业也不便于阅读。
#1 楼 @seveniruby 嗯。其实 google 自己的测试指南 也提倡 UIAutomator 用来做跨应用,Expresso 做单应用。
#10 楼 @mzl19860128 嗯,经他提醒确实你的 uiautomatorviewer 版本比较低(高一点的左上角应该有 4 个按钮),有可能是这个问题。
你升级后再试试?
#6 楼 @mzl19860128 这么奇怪?你确定你新找的手机是 Android 4.4.2 ?你再换台手机试试?
API 18 以上应该都有的。