试下装个最新的 homebrew ?
网上有人说 brew 版本太老也不行,不兼容新的 ideviceinstaller 自动安装脚本。
另外,麻烦添加一下头像,谢谢。
额,出错原因是你的 setUp 第二次执行时开不了 session 。
你以为的执行顺序是:
setUp->Test001->Test002
实际执行顺序是:
setUp->Test001->setUp->Test002
解决方法:
setUp
改名为 setUpBeforeClass
, tearDown
改为 tearDownAfterClass
(如果有)driver.quit()
)使用单元测试框架(如 Junit)前最好先了解一下它的一些基本概念吧。例如 Junit 的 setUp 和 tearDown :http://etutorials.org/Programming/Java+extreme+programming/Chapter+4.+JUnit/4.6+Set+Up+and+Tear+Down/
appium/build/settings_apk/settings_apk-debug.apk
appium/build/settings_apk/settings_apk-debug.apk
appium/lib/devices/android/android-common.js
和 appium-adb 的 appium-adb/lib/adb.js
)建议先用方案一,稳定后再做方案二的后两步吧。主要的重点难点都在 apk 和 adb 命令那里。
appium 设定 network 是通过 settings.apk 设定的,它的项目地址是 https://github.com/appium/io.appium.settings
虽然要求有点高,但如果你懂得基本的 android app 开发的话可以把它写到这个 app 里。
相关的文章http://blog.csdn.net/stevenhu_223/article/details/9052083
我去看了下 Java 客户端的 setNetworkConnection
的用法
public void networkConnectionTest() {
NetworkConnectionSetting networkConnection = new NetworkConnectionSetting(false, true, true);
networkConnection.setData(false);
networkConnection.setWifi(false);
driver.setNetworkConnection(networkConnection);
networkConnection = driver.getNetworkConnection();
assertEquals(new NetworkConnectionSetting(false, false, false), networkConnection);
}
用起来和 python 版的一样啊,三个值分别代表数据连接、wifi 和飞行模式。
没见到有控制蓝牙的功能。
不错,晚些试用一下。
另外,有些地方 markdown 语法用错了。
####1.更新 iOS SDK cocoaPods 版本
应为
#### 1.更新 iOS SDK cocoaPods 版本
,
更新的崩溃列表查看崩溃时间改为**最近 30 天**
应为
更新的崩溃列表查看崩溃时间改为 **最近 30 天**
markdown 对空格还是比较敏感的。
例子很赞。学习了。
学习了,去看了一下 sbt-native-packager ,打包功能真心强大!
这是 mac ?brew install node
装上的 node 不是可以不用 sudo 来安装 npm 包的吗?
分析很不错,确实找到问题根源了。
不过 appium 支持 uiautomator 的 api 本来意图是用来找元素的(所以才叫 find_element_by_android_uiautomator
)。如果返回值不是一个元素,当然会报异常。
大致看了一下, appium 对于 uiautomator 语句的检查十分严格,要求必须返回 UiScrollable 或 UiObject ,并且严格限定了参数的写法。我试过用类似 new UiSelector().checked(new UiScrollable(new UiSelector().scrollable(true)).scrollToEnd(3))
的方式绕过返回值类型的限制,但没想到它竟然连 checked 的内容都限定为只能是 true
或 false
(boolean 类型),而对于参数类型为 string 的限定了参数内容第一个和最后一个字符必须是双引号。我尝试用 new UiSelector().fromParent
绕过(object 类型的检查是最松的),但结果还是不行(提示 Could not parse UiSelector argument: UiSelector has no new UiScrollable method
)
看来 appium 只支持 uiautomator api 中查找元素的部分,而不是完全支持 uiautomator api 。不过这也符合 find_element_by_android_uiautomator
这个方法本身的定位。
学习了。 MonkeyTalk 的 API 好强大。
我终于看懂了,批量生成 SQL 语句/ json 数据。
有 api 可以让程序访问后自动生成吗?
对业务同学来说,像 MTSC 上面那种形式的 mock server 才容易上手吧。
新版的 robotframework 自带了 datetime 这个 library 的吧。
你使用 RIDE 的吗?找到一个相关的问题:http://stackoverflow.com/questions/26843149/unable-to-import-datetime-library-in-robot-framework
#2 楼 @chocolatesweety 你贴的是 appium client 输出的 log ,一些错误细节已经被隐藏掉了,所以定位不了问题。
1、appium server log(如果是命令行,就是命令行里的输出字符,如果是 GUI,就是里面黑色底的界面里面的内容)
麻烦提供一下:
1、appium server log(如果是命令行,就是命令行里的输出字符,如果是 GUI,就是里面黑色底的界面里面的内容)
2、使用环境:appium 版本、client 版本、android 版本等。
引起 Unknown server error 的原因有很多,有可能是 dump 出错,UIAutomator 挂了等等。光靠 unknown server-side error 定位不了问题的,需要 appium server log 才能比较准确地准确定位问题。