【问题标题】:Appium + android + python how to get URL that I've just clicked?Appium + android + python 如何获取我刚刚点击的 URL?
【发布时间】:2021-07-18 07:14:58
【问题描述】:

我有这样的环境 Appium + android Simulator + python。我必须测试这种情况:

  1. 我点击了 App 中的按钮
  2. 我的应用程序将进入网站(在 webView 浏览器测试器中)
  3. 我需要检查网址

常用代码我不能用:

driver.current_url()

因为它返回这个错误:

Method has not yet been implemented

我不知道如何获取此 URL。可能有人在这个问题上有经验吗?

【问题讨论】:

    标签: python android selenium url appium


    【解决方案1】:

    失败可能是因为您没有切换上下文: 在使用您正在使用 NATIVE_APP 上下文的应用程序时,但一旦您打开 WebView,您至少会获得一次额外的上下文

    webview = driver.contexts[1]
    driver.switch_to.context(webview)
    url = self.driver.current_url()
    

    这是一个基本示例,当然您需要检查上下文名称,而不是像我的示例中那样设置 index=1

    您可以找到更多示例here

    【讨论】:

    • 我对此很陌生,如果我的问题听起来很愚蠢,我很抱歉,但我使用的是 webView 浏览器,我看到:Android 中的 WebView 是允许任何应用程序将网页显示为其自身活动的一部分,而不是在单独的浏览器上打开它。但是,有什么新的背景吗?
    • context - 是 Appium 工具中用于描述应用程序“层”的术语。它与您的 Android 应用架构无关。
    • 在测试纯原生应用时,driver.current_context 将返回 NATIVE_APP。当您在移动设备上的浏览器中测试 Web 应用程序时,相同的调用会返回 WEBVIEW_<package name>。由于原生 Android 应用程序和 Web 应用程序不同,一些 Appium API 是特定于上下文的,获取 URL 就是其中之一:仅适用于 Web 应用程序。但是,如果您在 NATIVE 上下文中操作(单击在应用程序中打开 webview 的链接),则必须在开始使用视图操作之前切换上下文
    • 我可以给你一个很好的建议:阅读文档以更好地理解该工具。事情看起来会更简单:) appium.io/docs/en/writing-running-appium/web/hybrid/index.html
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    相关资源
    最近更新 更多