#3 楼 @wangquan2596489 好吧,刚才细看了一下你的 log,问题不止 ideviceinstaller :
info: [debug] Starting iOS device log capture via deviceconsole
error: Log capture did not start in a reasonable amount of time
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Log capture did not start in a reasonable amount of time
info: [debug] Error: Log capture did not start in a reasonable amount of time
at null._onTimeout (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios-log.js:137:10)
at Timer.listOnTimeout (timers.js:110:15)
你把 deviceName 补充上去吧。具体要用什么 deviceName 参照 https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.cn.md
装了之后重启了 appium server 了吗?
正常来说装了之后应该就没问题了。即使有问题,也不会是同一个问题。
brew install ideviceinstaller
。appium.app build-in 的貌似是那个用不了的。不知道什么是 brew 的请搜索 homebrew #1 楼 @lihuazhang 在它的文档找到这段:
AXUI provide built-in drivers for:
windows native UIAutomation Client API for windows desktop UI
selenium project for web UI
appium project for Android and IOS UI
和
AXUI is first developed for easy use of windows UIAutomation API, then restructure to add support for WebDriver API used by selenium
and appium
. So if your UI automation is similar to windows UIAutomation API or WebDriver API, it will be easy to add support for it in AXUI.
应该是可以通吃的。只是最主要支持的是 windows desktop ,然后扩展支持 webdriver 。
#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