Получить текущий URL с AppiumLibrary - RobotFramework

Я использую 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 не имеет клавиш для этого, поэтому мне нужно создать собственное ключевое слово для получения текущего URL в python. Я попробовал несколько вещей, глядя на исходный код AppiumLibrary, а также на модуль Appium-Python-Client, который реализует Appium Webdriver для python. Но я не нашел, как получить текущий URL, который Chrome показывает пользователю. Любые советы о том, где я должен искать решение?

2 ответа

Решение

Я не мог найти, как заставить это работать с новым ключевым словом. По сути, я не смог найти, как получить доступ к драйверу Selenium в драйвере Appium, который реализует метод для этого, но я получил очень простой и элегантный ответ от katchdoze в канале AppiumLibrary о слабой робототехнике. Это так просто, как:

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}

Надеюсь, что это помогает другим.

Я не знаком с 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 - Получить команду URL

Другие вопросы по тегам