/**
* 切换到Webview
*/
public void toWeb() {
List<String> handleList = new ArrayList<String>();
Set<String> set = driver.getContextHandles();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
handleList.add(it.next());
}
driver.debugLog(handleList+"");
UtilTools.closeChromeDriver();
driver.context(handleList.get(1));
}
closeChromeDriver() 方法调用你封装的和我封装的方法效果一样。最后卡在 driver.context(handleList.get(1));的位置。
#3 楼 @yzx200712256 这还是 android 的
频繁的杀 chromedriver 进程可以解决,但同时又引发了这个问题。
2016-07-27 09:12:38:583 - info: --> GET /wd/hub/session/dbb97f5e-2e41-4e26-b664-69ea3919e5ad/contexts {}
2016-07-27 09:12:38:584 - info: [debug] Getting a list of available webviews
2016-07-27 09:12:38:585 - info: [debug] executing cmd: D:\android-sdk\platform-tools\adb.exe -s QMSDU15A24012345 shell "cat /proc/net/unix"
2016-07-27 09:12:38:635 - info: [debug] WEBVIEW_17916 mapped to pid 17916
2016-07-27 09:12:38:636 - info: [debug] Getting process name for webview
2016-07-27 09:12:38:636 - info: [debug] executing cmd: D:\android-sdk\platform-tools\adb.exe -s QMSDU15A24012345 shell "ps"
2016-07-27 09:12:59:775 - error: Unhandled error: TypeError: Cannot read property 'indexOf' of undefined
at D:\Program Files\Appium\node_modules\appium\lib\devices\android\android-hybrid.js:102:26
at Function.findIndex (D:\Program Files\Appium\node_modules\appium\node_modules\underscore\underscore.js:620:13)
at Function._.find._.detect (D:\Program Files\Appium\node_modules\appium\node_modules\underscore\underscore.js:214:15)
at D:\Program Files\Appium\node_modules\appium\lib\devices\android\android-hybrid.js:100:7
at [object Object].<anonymous> (D:\Program Files\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:180:9)
at ChildProcess.exithandler (child_process.js:204:7)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:827:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) context: [GET /wd/hub/session/dbb97f5e-2e41-4e26-b664-69ea3919e5ad/contexts {}]
到日志位置出现卡死的情况。
#19 楼 @laughing_xk 环境变量设置好了应该就 OK 了。你生效了你的环境变量配置么?
#84 楼 @binger8296 直接修改 DebugBridge.java 中的部分代码即可。
// String toolsDir = System.getProperty("com.android.uiautomator.bindir"); //$NON-NLS-1$
// if (toolsDir == null) {
// return null;
// }
// File sdk = new File(toolsDir).getParentFile();
String toolsDir = System.getenv("ANDROID_HOME");
if (toolsDir == null) {
toolsDir = new FileOp().GetConfigString("Android SDK Path");
if (toolsDir == null) {
return null;
}
}
File sdk = new File(toolsDir);
// check if adb is present in platform-tools
File platformTools = new File(sdk, "platform-tools");
File adb = new File(platformTools, SdkConstants.FN_ADB);
if (adb.exists()) {
return adb.getAbsolutePath();
}
#15 楼 @yingruoyuan 如果你是要通过命令行启动 appium 的话,这个问题是系统环境变量的问题,10.10 以及以前的版本有解决方法。
1.eclipse 里面可以设置环境变量临时解决(把 ideviceinstaller 所在目录/usr/local/bin 添加到 eclipse 的 environment Run as configuration -environment-New)。
2.如果要做 jenkins 集成或者打成 jar 运行需要更改系统的环境变量,可以参考该贴http://stackoverflow.com/questions/25385934/setting-environment-variables-via-launchd-conf-no-longer-works-in-os-x-yosemite
没能参加今年的盛会,挺遗憾的。明年一定要亲临现场感受。
#3 楼 @lihuazhang 一看到 bolck chain 就联想到了 BTC,难道你们是做这个行业的?
//输入用户名
driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[4]/UIAKeyboard[1]/UIAKey[28]")).sendKeys("123456789");
从代码看,感觉你的 xpath 写错了。
#14 楼 @liangzhaochen 看日志好像说是你的 app 编译的版本不适合你的设备,估计是 deployment target 选择的问题,可以看一下是不是这个原因导致的。
用你们各家交易网站的 API 在 WP 上做过 app,虽然 UI 有点捉急。
List elList= findElementsById(“id”);
elList.get(1).click()
#9 楼 @liangzhaochen 这个图没实际意义啊,主要看 log,注意事项请参考正文
—— 来自 TesterHome 官方 安卓客户端
已报道
—— 来自 TesterHome 官方 安卓客户端
看我的帖子,查查是什么原因。https://testerhome.com/topics/5233
#4 楼 @seveniruby Demo 代码在百度云盘链接里面,代码写得不好,见笑了
#1 楼 @chenhengjie123 不能实时预览,点了个保存,现在写完了。
谢谢分享,提供了一个更细纬度的分析方法
做 uiautomatorviewer 的改造是去年年初,加全路径 xpath(用到的时候不多)。今年看到论坛有使用 bootstrap 方式驱动设备端的方法又开始改进,现在也实现了跟你类似的功能。你也提供了一个非常不错的思路给大家参考,另外想请问一下 find,check 这两个方法没有写,这两个是准备做什么用呢?
@taki QueueMsg 是您自定义的类?另外 init() 和 sendMsg() 方法是用来测试 bootstrap 如何工作的么?能联系一下我邮箱私聊问点问题么?