Опция --pythonpath не работает с Robot Framework - PullRequest
0 голосов
/ 16 октября 2019

Я пишу пользовательскую библиотеку Page Object для Robot Framework, например, такую: robotframework-pageobjectlibrary

Пользовательские ключевые слова моей страницы (объекты страницы) находятся в отдельной папке, и когда я запускаюмои Robot Framework тесты, я даю их путь с параметром --pythonpath следующим образом: robot --pythonpath ../resources/pageobjects lib-test/test.robot.

Моя структура каталогов выглядит следующим образом:

CustomPageObjectLibrary
|--__init__.py
|--keywords.py
|--locatormap.py
|--pageobject.py
Resources
|--pageobjects
   |__CountryPage.py
Tests
|--lib-test
   |__test.robot

Содержимое CustomPageObjectLibrary в настоящее время такое же, как в связанном репо, за исключением того, что я использую AppiumLibrary вместо SeleniumLibrary.

CountryPage.py

from CustomPageObjectLibrary import PageObject

class CountryPage(PageObject):
  PAGE_TITLE = "Country"

  _locators = {
    'germany': 'countryGermany',
  }

# def __init__(self):
#     super(PageObject, self).__init__()

  def open_app(self):
    self.appiumlib.open_application('http://localhost:4723/wd/hub', platformName='Android', deviceName='...', appPackage='...', appActivity='.MainActivity', uiautomator2ServerInstallTimeout=50000)


  def choose_country(self, country):
    # Convert country to lovercase
    country = str(country).lower()

self.appiumlib.wait_until_element_is_visible (locator = self.locator.germany) self.appiumlib.click_element (locator = self.locator.germany)

Мой тест:

*** Settings ***
Variables       ../../resources/pageobjects/config.py
Library         CustomPageObjectLibrary
Library         AppiumLibrary

*** Test Cases ***
Navigate To Not Connected Screen
Open App
Choose country      germany

Я запускаю это с помощью следующей команды: robot --pythonpath ../resources/pageobjects lib-test/test.robot

Ошибка, которую я получаю: No keyword with name 'Open App' found.

Что может бытьпроблема с этим?

1 Ответ

2 голосов
/ 17 октября 2019

Для работы библиотеки объектов страницы сначала необходимо импортировать PageObjectLibrary в тесте. Затем вы должны запросить загрузку библиотеки объектов страницы, прежде чем сможете использовать ключевые слова в этой библиотеке.

Поскольку ключевое слово Open App находится в библиотеке объектов страницы, сначала необходимо вызвать go to page CountryPage или the current page should be CountryPage. Вызов любого из этих ключевых слов приведет к загрузке вашей библиотеки, что сделает ключевые слова доступными.

...