这种巨坑啊。。。不看源码绝对搞不定,看了源码也得改源码才搞的定。。。
#12 楼 @xxfcxx 你检查一下你的网络? https://rubygems.org/quick/Marshal.4.8/erubis-2.7.0.gemspec.rz 这个链接我可以下下来的。
找到了它的 docker 镜像地址: https://registry.hub.docker.com/u/countly/countly-server/
#5 楼 @testbird 我的意思是你具体是在哪个地方配置的?
配置环境变量的地方很多,不同地方配置效果会不一样。
具体可以参考 Linux 环境变量加载的研究
好工具!看起来就是针对移动应用的 google analyze 。后面有时间试一下。
#4 楼 @jytest 你在循环里加个 scrollTo 就能保证点击前元素会被滑到当前界面了。
参考文档:http://appium.io/slate/en/master/?python#scroll-to
估计没多少人会想到你从来没有打开过 xcode 和 instrument 。。。
还记得当年高考每天考完下午的科目后还去打数个小时的球,然后只能找到一个铁杆球友一起打。。。然后铁杆球友考上了中大。。。
Appium 图形界面运行脚本报错,报错信息是 Error: java -version failed.Error:spawn ENOENT
spawn ENOENT
的意思是运行某个命令时收到 ENOENT 这个错误信号(spawn 加壳后的程序是通过信号来传递信息的)。ENOENT 信号对应的信息为 No such file or directory
。出现这个错误你需要检查自己的环境配置是否正确,单独运行 java -version
命令会不会出现 No such file or directory
这个错误。
另外从命令行运行脚本时非常慢
慢是正常的, appium 做不到像 selenium 那么快(1 秒完成 n 个操作),因为 uiautomator 本来就不快,但速度还不至于完全无法接受。主要慢的只是输入文本的操作,点击、滑动什么的还是挺快的。
自动安装两个 app Appium Settings 和 Unlock
这也是正常的,因为某些命令需要用到这两个 apk,所以 appium 每次启动 session 都会安装这两个。其实还装了一个输入法,只是它没有出现在桌面上。
不用每次都 find ,find 出来后的元素会在 appium 内部记录的,脚本里直接循环 table
这个数组就好了。
find 得太多不知道会不会有影响。而且你的 log 里面有 Waited for 32032ms so far
,说明很有可能很早就已经找不到元素了。
需要滑动可见的话可以用 scrollTo 。
好正点!之前用过一段时间 Fir.im,提交代码到用户下载安装一个 CI 搞定,确实很爽。
可惜 base 广州,去不了。。。
试了下,用 selendroid(纯 selendroid,不是 appium 的 selendroid 模式)可以定位到底层的控件:
你可以试试。
看了一下,没有见到 "如果是设置的秒等待以秒计算" 这个转换算法。
既然你说你自己看代码,那就只给你代码所在文件位置:
https://github.com/appium/appium/blob/68ed31b1532b223d0ea5c0804eb1457a6c831688/lib/devices/common.js
关键函数:waitForCondition
,implicitWaitForCondition
。
注意: 不同 webdriver 具体实现可能会有所不同
最简单的做法:
启动:使用类似 subprocess 的模块起一个进程跑 appium 命令
关闭:杀掉 subprocess 起的进程(一般是个 Node 进程)
#8 楼 @vigossjjj
两个问题都试过了,确实已经 fix 了。
:plus1:
#5 楼 @vigossjjj Good!
如果需要帮忙随时找我哈,虽然 ruby 方面语法不是很熟,但简单的 fix bug 应该还是 ok 的。