#19 楼 @laiyuncong8404 我是男生啊。。。那是他们起的绰号。。。
#21 楼 @anikikun 你看,搞出误会了。。。
#9 楼 @honeybadger 。。。appiumForWindows 也可以通过命令行来控制的。。。
例如你的 AppiumForWindows 放在 C:\appium
下,那么可以在命令行里敲下面的命令来启动 appium server:
C:\Appium\node.exe C:\Appium\node_modules\appium\bin\appium.js
效果和你用 npm 安装后使用 appium
命令启动是一样的。
AppiumForWindows 只是把你原本要跑的命令用 GUI 来触发,并不是封杀了这条路。
#8 楼 @yangchengtest 1k/1g,比切糕还贵。。。
实在不行的话考虑 appium.app 或者 appiumForWindows 吧。我觉得在这个地方耗这么长时间意义不大。
#8 楼 @cpfeng0124 谢谢支持!机械手这个我还真没怎么了解过。。。Dan 那个看起来像是 3d 打印机改造的。
xpath,除了 resource-id 匹配外还要 index 匹配。
#2 楼 @lihuazhang 嗯,专注确实是我现在所欠缺的。
@monkey 他说的是达峰和鬼道吧。不过鬼道是天猫的。。。
我参加过的会议不多,而且基本都是比较小的规模。这次会议是我第一次参加水平比较高的,确实收获不少。特别是收获了一些大公司里面的一些测试框架架构,这个我觉得在其他地方真不一定听得到。当然会场是有一点混乱,但毕竟都不是专业做这个的,能做到这种程度已经相当不错了。
赞,很全,而且很有层次。学习了。
小小吐槽一下,文字版的环境清单那里格式貌似乱掉了,一行里面好多文字挤在一起。。。
#9 楼 @yangxiangfu 呵呵 我干嘛。。。
不能跑的脚本长啥样?
直接用 get_contexts 获取所有 context ,然后切换到 webview 开头的 context 就好了。
点坐标不应该有这个出错啊,因为你压根就没有 element 。另外,点坐标的写错了,应该是:
action.press(5, 358).perform();
否则就没有执行 press 了。
elementId 10 could not be tapped
我之前有遇到过,这个报错主要是 uiautomation 那边抛出来的,appium 只是把它封装了一次。
相关源码:
// Gesture functions
tapById: function (elementId) {
var element = this.getElement(elementId);
var errObj = new ERROR.UnknownError(
'elementId ' + elementId + ' could not be tapped');
if (element !== null) {
try {
// element may still be null.
element.tap();
} catch (e) {
if (e.message.indexOf("(null)") !== -1) {
try {
$.target().tap(element.rect());
} catch (e2) {
throw errObj;
}
} else {
throw errObj;
}
}
} else {
throw new ERROR.UnknownError(
'elementId ' + elementId + ' is null and can\'t be tapped.');
}
}
后来我的解决方案是自己封装了一个 tapByCoordinate 方法。大致思路:
321321321e-32
的明显无效的值),如果带有 e-
,则重新再去 find (location[0]+size[0])/2
, y:(location[1]+size[1])/2
(即元素的中央位置)另外,你提到的
首先,我想到的是获取电话输入框的 xpath 来传值
这种方式不行,会直接干掉 “电话” 文本,输入后并不能保存。
干掉 “电话” 文本 是啥意思?没看懂。
微信的问题貌似不少啊。
可以打开开发者选项里的 “显示触摸操作”,看下你的 swipe 到底划了多长,是否足够滑动整个屏幕。
另外,651 到 658 这个距离应该只相当于你页面底部两个指示点之间的距离,这么短的距离当然没法划走屏幕。一般要划掉半个屏幕宽度才够。