Appium 从 app 打开一个链接 www.baidu.com,如何获取该链接的 url?

醋精测试媛 · 2020年11月13日 · 最后由 cmlanche 回复于 2020年12月24日 · 3134 次阅读

app 上有一个按钮,可以点击打开百度官网,请问我如何通过 appium 校验该打开的网页 url 为百度官网呢?

共收到 22 条回复 时间 点赞

都打开百度官网了,直接定位百度官网的元素判断不行吗

yanderder 回复

主要是从 app 打开。定位只能定位一整块页面,里面元素定位不到。

getsource,再判断百度相关的字段在不在里面行不

yanderder 回复

如果是其他网站呢,肯定是 url 比较靠谱,现在我的想法是用 webview,但是不知道开发愿不愿意打开

页面是通过 webview 加载的, 你需要从原生切换到 webview

幺叁叁 回复

webview 切不进去,除了请开发打开还有别的办法吗

如果只是安卓的话,可以试试 weditor,能定位到 webview 里的元素

安卓的话,手机 root,使用 xposed+WebviewDebugHook

匿名 #9 · 2020年11月16日

图像识别

截个图在测试报告里面体现出来不就行了吗,搞这么复杂干嘛呢

初痕 回复

搞这么复杂是想要验证是否打开的链接是正确的

首先 app 里面的跳转链接,隐私协议,服务协议等都是从后端接口获取,基本不会存在 app 写死。就算是写死的你这种断言两个链接是否一样在后期如果 app 开发改了这块你这个用例基本也就失效了,在快速迭代过程中,是没有维护时间的

业内大佬已经不至一次提醒 ui 自动化 ROI 已经很低了

初痕 回复

是这样的,为什么这个跳转链接有测试需求是因为我要测试的 app 和 web 一起的,当我在 web 上新增了一个 xx,里面会要填写其跳转链接,这时我去 app 上面验证,这个跳转链接是否与我当时新增时一致,所以我需要获取到 url,这个链接是 web 端我测试的时候自己获取的,不会写死,这个功能就是希望去验证这个东西。

初痕 回复

怎么说呢?
1.这是上面安排的任务。
2.公司真的不知道 UI 自动化投资回报率低吗,但是短期内确实大势所趋
3.本项目软件生命周期长,需求较稳定,是合适的,不是无用功,也确实遇到了如题目所示的问题
的确正在学习中,没办法像您一样考虑地那么长远,但是尝试 ui 自动化,把结果告诉他们到底行不行是我的工作。

这又是个测试用例设计的问题。
在 web 上操作设置后,使用 appium 获取 APP 上对应的链接属性,然后断言该链接跟 web 上设置的链接相符就可以了。不需要打开链接。

Thirty-Thirty 回复

无法获取 app 上对应的链接属性,是通过点击图片打开的

Thirty-Thirty 回复

我也觉得验证到这一步说明逻辑对了,链接打不打得开就是另一个用例的事儿了

获取不到说明不能使用 UI(自动化) 测试来做,应该使用别的方式达到验证目的,比如接口测试。
设计测试方案的时候,最重要的一个参考就是被测产品的设计。

打开后不是 safari 等浏览器么,点击下地址栏,就可以复制出来了啊
地址栏的属性也应该有 value 可以直接读取呢

建议说服开发开给你就好了,没必要为了一个几分钟加个开关 + 切 webview 就能解决的事情,想各种曲线救国

既然开始做 ui 自动化了,就得想办法拉上开发给你提供便利,高大上点说就是为了可测性进行调整。曲线救国会明显降低 roi,引入更多工具也会让自动化变复杂、变慢和更不稳定,而且后面总会遇到没法曲线救国的地方,这时候才找开发人家已经习惯你单干,不一定愿意帮你

要看 appium 使用的是何种自动化技术:

如果自动化技术是 UIAutomator 的话,是无法获取到 url 的,除非是小程序,通过 ws 接口可以拿 url

如果用的是 espresso,是可以拿 url 的

2楼 已删除
醋精测试媛 关闭了讨论 01月08日 17:17
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册