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

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

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 的

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