Appium 求助,APP 在 login 和 Logout 两个状态的启动 activity 不同,如何处理

Darcy66 · 2018年03月02日 · 最后由 Darcy66 回复于 2018年03月09日 · 1468 次阅读

如图这样,我想要在 login 之后连续执行 Logout 的动作,然而 login 和 logout 需要设置不同的 appWaitActivity
那么请问这样的想法可能实现吗,如果可以,需要怎么修改。
能否在 setUp 的时候去判断当前执行的是哪个 testCase 来设置 cap 的值?
我是新手,如果问题太简单,请见谅~~

共收到 9 条回复 时间 点赞

没有人能帮我解答一下吗~

Darcy66 回复

app 启动主界面肯定只有一个,应该是开发根据登录状态做了跳转,你问一下开发就知道了😀

arrow 回复

其实现在还真的是会改主界面,在未登录状态要设置为 welcomePortalActivity,登录状态则是 welcomeActivity,不设置的话会报错。
所以问题才成了怎么在运行一个 test case 的时候更改 appWaitActivity

登陆完成后 再执行一个退出登陆?
登陆完毕-》test1 执行完毕 kill app -》test2 重新启动 app-》退出登陆
用这个函数试试(不过是很早之前的了 1.4.16),可以在运行中跳转 app
driver.startActivity("com.android.camera", ".CameraLauncher")

Zhhh 回复

好像不是你理解的这个意思,现在是 login 完成后会 teardown,然后重新 setup,这时候的 appWaitActivity 已经不是现在写的这个了,在这就会直接报错,说这个 activity never started

Darcy66 回复

分 2 个 desired_caps 配置试试?分首次登陆和已登陆。然后设置跑完后不自动重装 app。自己再新建一个 uninstall 方法需要的时候可以调用删除或清空 app

Zhhh 回复

额 这个我也想分,但是在 setup 里怎么判断是要跑首次登陆还是已登录呢。另外,设置完后不自动重装 app 这个要怎么写?

Darcy66 回复

以为设计的用例是冒烟的。原来还想用例分开来用是么
不对。。 一般 app 启动的 launchable-activity 只有一个啊,你可以用 aapt 查一下
😂 可能是我没有遇到过。。

1.不自动重装 app:
--no-reset 或者在图形界面小机器人选项 勾选 no reset。

2.因为你知道两个不同的 launchable-activity 名称,使用 adb shell am start 启动 app,未登陆和已登陆界面应该是不一样的吧 设置个检查点进行判断吧,adb 拿 xml 出来稍微过滤一下

Zhhh 回复

我这边是录制的 python 的,在 pycharm 直接跑来着,然后两个 activity 我都是知道的,noReset 设置了还是会 tearDown 后重新 setUp。
对于你说的 adb shell an start,我还真不知道是咋用的。。。毕竟我新学习的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册