【问题标题】:Get current URL with AppiumLibrary - RobotFramework使用 AppiumLibrary 获取当前 URL - RobotFramework
【发布时间】:2019-07-15 12:01:02
【问题描述】:

我使用 AppiumLibrary 和 RobotFramework 来测试 Android 上的网页浏览。在一些测试中,我需要找出用户点击链接后被定向到的当前 URL 是什么。

基本的示例测试用例是:

Test Appium
   AppiumLibrary.Open Application  http://localhost:4723/wd/hub  platformName=Android  platformVersion=6.0.1  deviceName=0815f853b6d22c05  browserName=default
   AppiumLibrary.Go To Url  https://www.amazon.com/
   sleep  5s
   ${current_url}  get current url
   log to console  ${current_url}

与 SeleniumLibrary 不同,AppiumLibrary 没有执行此操作的密钥,因此我必须在 python 中为 get current url 创建自己的关键字。我已经尝试了几件事来查看 AppiumLibrary 源代码以及实现 Python 的 Appium Webdriver 的 Appium-Python-Client 模块。但我还没有找到如何获取 chrome 向用户显示的当前 url。 关于我应该在哪里寻找解决方案的任何提示?

【问题讨论】:

    标签: appium robotframework python-appium


    【解决方案1】:

    我不熟悉 Appium,但根据我对 Robot 框架的了解,以下应该可以工作:

    AppiumExtended.py

    from appium import webdriver
    
    def get_url():
        url = driver.current_url()
        return url
    

    testScript.robot

    *** Settings ***
    Library  /path/to/AppiumExtended.py
    Library  Other libraries
    
    *** Test cases ***
    Test to get url
        ${url}  Get Url   
        Log to console  ${url}
    

    Appium - Get url command

    【讨论】:

    • 我尝试使用 BuiltIn().get_library_instance('AppiumLibrary')._current_application() 获取当前的网络驱动程序。这实际上返回了一个由正在运行的 Appium 实例使用的 Webdriver 类型的对象。但是调用 current_url() 会引发“TypeError: 'str' object is not callable”。
    【解决方案2】:

    我找不到如何让它与新关键字一起使用。基本上,我找不到如何在实现该方法的 Appium 驱动程序中访问 Selenium 驱动程序,但我从 slack 机器人框架的 AppiumLibrary 频道中的 katchdoze 得到了一个非常简单而优雅的答案。很简单:

    Test Appium
       AppiumLibrary.Open Application  http://localhost:4723/wd/hub  platformName=Android  platformVersion=6.0.1  deviceName=0815f853b6d22c05  browserName=Chrome
       AppiumLibrary.Go To Url  https://www.amazon.com/
       sleep  5s
       ${current_url}  execute script  return window.top.location.href.toString()
       log to console  ${current_url}
    

    希望对他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-05
      • 2010-09-29
      相关资源
      最近更新 更多