anyone?
标记一下
对不住哥们,我上次确实没理解你的意思,不知道还有直接修改 appium
源代码这种玩儿法
主要是刚接触 appium 一小段时间
很多东西都不了解
你是说修改 appium 的源代码?这。。。
这个会比较困难吧,我也可以学习一下,不过这个不敢轻易动手做
我查查,还有这种东西?我对 android 的理解太浅了
谢谢了
大哥,你没有用过 appium 吧
这两个 apk 是 appium 自动安装的
我没有写任何代码要求 appium 去安装这两个软件
而且根据我的观察,appium 之所以安装这两个 apk
是为了在真机中初始化运行环境,目前我没有找到有关于 appium
有什么地方能够调控这种行为。当然,也很有可能是我学习 appium 不到家
标记一下
我觉他们就是故意的
现在各种 root 工具在最新版本的小米和 Vivo 上都不起效果
很难获取 root 权限,结果就是自动化做起来非常困难
我和小米的客服联系过了,确实是这样。
没办法,我已经放弃小米手机了
目前在华为荣耀低版本和 ViVo X9 上脚本能够正常运行
只是还没有完全做到自动化,正在研究 rootVivO
最暴力,最彻底的方法就是 root 手机,然后关闭或者卸载系统中的安全控制软件,这样的话系统不会再弹出各种警告信息了
方法应该是可行的
不过还不是我理想中的方法
而且如果存在各种安全机制的限制的话,在后面的功能测试过程中可能还是会存在问题
可以呀
我现在想到的是对手机进行 root,然后删除系统的安全控制软件
这样在安装 apk 的时候应该就不会弹出对话框了
可惜,现在的手机版本越高,root 越难做,很多工具都无效
关键是这个 adb 命令让谁去发起呢?
其实也就是说并没能完全按照我原本的意图做到模拟用户的操作
我只是回避了直接点击屏幕中的控件
而采用系统级别的 back 函数
但是我确实是很想搞清楚为什么点击确定按钮以后,自动化脚本就失去了对屏幕的控制
为什么就识别不到页面中的控件了
我还是倾向于认为发生了 frame 的切换
只是我在点击 确定 按钮的时候确实没有主动切换 frame,而这在 web 自动化测试中是不可能的
在 web 中必须主动切换 frame,然后再主动切换回去
但是我在点击 确定 按钮之前没有切换 frame,结果可以正常点击
在点击 frame 之后,回不到主界面了。。。。
我找到了结果的方法,虽然看上去完全不符合逻辑,但脚本就是按照功能测试的目标运行的:
public void testMePage_ClearCache() {
goToMe();
action.click(By.xpath("//android.widget.TextView[@text=\"清空缓存\"]"), "点击清空缓存");
action.click(By.id("com.eisoo.anycontent:id/positiveButton"), "点击确定按钮");
// action.sleep(2, "调试");
// action.clickScreen(75, 147, 50, "");
action.back("");
action.click(By.id("com.eisoo.anycontent:id/ll_left"), "点击左上角的返回");
action.click(By.xpath("//android.widget.TextView[@text=\"设置\"]"), "点击设置");
boolean isExist = false;
isExist = action.verifyExist(By.xpath("//android.widget.TextView[@text=\"当前缓存:0B\"]"), "断言缓存已被清除");
FrameAssertion.isTrue(isExist, "断言缓存已被清除");
action.click(By.id("com.eisoo.anycontent:id/ll_left"), "点击左上角的返回");
}
我这里要解释一下,在点击如图所示的确定按钮之后
我本该做的操作是判断清除缓存的效果元素
可是获取不到
我就尝试点击左上角的返回图标
还是获取不到
这两种情况下,我开始怀疑是否存在 frame 切换的问题
可是在尝试了 driver.switchTo()
之后还是获取不到
没办法,最终想到了使用
driver.back()
但是让我困惑的也正出现在这里!!
driver.back() 确实起了效果,让我返回到上一个页面,但是这时候又能够点击左上角的返回图标了
问题是上一个页面中是不存在这个图标的,大家可以看第一个图,图中是没有左上角的返回图标的
所以,我现在怀疑存在一个时间差的问题
但是暂时没找到 root cause
大家有什么想法都可以留言
使用这个方法点击手机左上角的返回图标
没成功,信息显示说这个方法还没有实现
我使用的是 AndroidDriver
我查过了,目前 app 是 native,没有 webview
我换了一种思路来做这个脚本
从功能验证的角度来看是一样的
只是为什么点击完 popup 后就不能识别页面中的元素,我还
没有找到原因
真心觉得 appium 有太多坑
真的吗?
我还没有写苹果端的代码,如果真是这样,那真就坑爹了
标记一下,要不不好找自己的帖子
可是这种现象在小米手机中一直存在,但是在 ViVo 手机和模拟器上又不存在
我可以加判断,看是否有 popup 弹出
但是总觉的是小米手机的问题,让我很不爽
我明白的,正在尝试
没啥纠结的,就是偶然看见,觉得有点怪怪的
发现一个 testerhome 的 bug
给自己的帖子点赞,点赞数会正常加一,但是随即刷新,点赞数又会自动减去 1,是故意这样设计还是。。。
@Lihuazhang
谢谢你的建议和提供的链接
我都会找时间去尝试的,
不过我现在最担心的问题是一旦弹出这个 popup 对话框
我的脚本的事件流就中断了,即使我手动的很及时的处理掉这个 popup
后面的填写账号和密码的动作也不能完成,真是让我很担心
不过,你提议的方法我一定会去尝试的,这也是一个很好的学习的机会
只不过我现在对小米真的是没信心了。。。。。