#3 楼 @chenhengjie123 我发现三页引导页我都没有办法 scroll 或者 swipe,网上找了所有办法都没办法,索性还是换了真机,swipe 没有问题了,但是碰到了新问题。
在 7.1 真机上 swipe 到第三页无法点击 button,button 无 class,无 name,无 id,使用 xpath 查找,在 inspector 中获取的是正确的,button 是在 UIAScrollView[1]/UIAImage[3]/UIAButtonp[1],但是 driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIAImage[3]/UIAButton[1]")).click() 不行,会报 an unknown error occured server-side,后来我发现真机上完全不支持 click 方法,后来我是通过 tap 这样解决的:
MobileElement button = (MobileElement) driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIAImage[3]/UIAButton[1]"));
button.tap(1, 1);
但是 tap 后到登陆页面,我发现就不能直接用 driver 了,因为会提示找不到,要我 switchto web,但是我都是 native app,没有 web 啊?我如何回到当前 login 页?
#1 楼 @chenhengjie123 你自己有没有试过能不能再模拟器上使用 swipe?你给的官方链接上貌似没有我想要答案 -- 收回我上面的话,看到了你说的缺陷和建议,虽然是针对 scroll 方法的,但是可能会有用,再次感谢,也为我方才的不细心道歉
Could not initialize ideviceinstaller 自问自答一记;github 上有这个问题的描述,appium 的作者解释了 ideviceinstaller 是系统环境所需的,并不在 appium 中,所以这个也不能算 appium 的 bug 吧,至少 1.4.0 和 1.4.1 仍存在这个问题。我去试试安装 ideviceinstaller 是否可以解决这个问题。
#3 楼 @nancy2896 我也不是太熟悉 iOS 上的测试方式,所以才想通过官方的小例子学习一下。你的关注一下这个问题,如果有人解答了我相信你的问题也能得到解答。
#3 楼 @nancy2896 我也不是太熟悉 iOS 上的测试方式,所以才想通过官方的小例子学习一下。你的关注一下这个问题,如果有人解答了我相信你的问题也能得到解答。
#1 楼 @pighero001 是说的 appium 1.3.7 的 idevice 文件有问题,要重新从 1.3.3copy 一个过来? 我查过,1.3.7 的里面要替换的文件其实是一个目录,根本就不是一个文件。我觉得网上写的不对,所以没有贸然替换
#11 楼 @sanlengjingvv 谢谢回复的如此详细。那么假如测试二、三、四条用例,保持 app 登录在 mainactivity 的情况下,如何测试?我试了把 before 里初始化的东西改成从 mainactivity 启动,然后运行,会报错。也就是说二、三、四只能和一五结合起来测试,没法单独直接测试。
#8 楼 @jinjun0620 谢回复,这也是我在第一个回复里写的做法。但是这样还是等于每次测试都要从 login 跑起,只是 login 部分不用每次都写。我提这个问题的实质是想问,有没有不用从 login 登录,直接测试 app 里任何一个 activity 的方法。
#6 楼 @jinjun0620 当然不想每个 case 都跑 login 和 logout,比如有一个朋友圈 activity,如果可以直接从这一页开始测试当然最方便;但是我之前回复里说了,1.好像不从 startactivity 开始就不能启动;2.不从 login 开始就没有 sessionid;这两点就使得我不能从任意 activity 开始测试,而是每测一个模块功能就必须从 login 开始测。