Не удается найти пользовательское ключевое слово в рамке робота - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь импортировать пользовательское ключевое слово, написанное на python, в роботизированную рамку.

У меня следующая ситуация:

Получил file.robot со следующим содержимым:

Library  SeleniumLibrary
Library    ../../../python_scripts/mapActions.py

Drag and drop     //*[@id="map"]  -50     -50
mapActions.Drag and drop   //*[@id="map"]  -50     -50
mapActions.MapActions.Drag and drop     //*[@id="map"]  -50     -50

И mapActions.py:

from SeleniumLibrary import SeleniumLibrary
from SeleniumLibrary.base import keyword

class MapActions(SeleniumLibrary):
   @keyword
   def drag_and_drop_on_element_with_offset(self, locator, x, y):
       map_locator = self.find_element_by_xpath(locator)

После запуска file.robot получил вывод:

1) Не найдено ни одного ключевого слова с именем «перетащить элемент со смещением».

2) Нет ключевого слова с именем 'mapActions.drag и добавьте элемент с смещение 'найдено.

3) Нет ключевого слова с именем 'mapActions.MapActions.drag элемент со смещением 'найден.

Использование Python 3.7.2 RobotFramework 3.1.1

Попытка использовать эти три варианта не позволяет понять, какой из них следует учитывать ...

Что я делаю не так? Почему file.robot не может запустить функцию перетаскивания?

1 Ответ

0 голосов
/ 15 мая 2019

точное имя функции можно использовать только как ключевое слово.

В .py файле из SeleniumLibrary импорт SeleniumLibrary из ключевого слова импорта SeleniumLibrary.base

Класс MapActions (SeleniumLibrary): @ключевое слово def drag_and_drop_on_element_with_offset (self, locator, x, y): map_locator = self.find_element_by_xpath (locator)

В файле Robot Framework Библиотека <>

drag_and_drop_on_element_with_offset // * [@ id = "map"] -50 -50

В приведенном выше примере точное совпадение с именем функции можно использовать в качестве имени ключевого слова.

Ниже приведен рабочий и проверенный пример * Настройки * Библиотека ../../UUID.py

* Контрольный пример * Создать новую модель лицензии $ {uuid} = Создать UUID

функция Python def Generate UUID (self): "" "создать UUID" "" return uuid.uuid4 ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...