Проблема с множеством данных на 2 таблицы

В библиотеку ничего не встроено, чтобы вы могли делать то, что хотите как таковое . Однако вы можете создать свою собственную библиотеку, которая может получить доступ к функциям selenium. Это можно сделать двумя способами, которые требуют создания собственной библиотеки в python. Эти методы предназначены для подкласса Selenium2Library или для получения ссылки на экземпляр Selenium2Library.

Создание пользовательской библиотеки, которая подклассы Selenium2Library

. Один из способов доступа к внутренним элементам Selenium2Library - написать класс библиотеки, который наследуется от Selenium2Library. Когда вы это сделаете, у вас есть доступ ко всему в исходной библиотеке. Затем вы можете вернуть ссылку на объект WebDriver или просто написать свои собственные ключевые слова в python.

В качестве примера, это обычная библиотека селена, которая имеет новое ключевое слово, которое вернет текущий экземпляр WebDriver , Он делает это, вызывая частный (к исходному методу Selenium2Library) _current_browser. Поскольку это частный метод, нет никакой гарантии, что он выдержит проверку временем, но в то время, когда я пишу это, он существует.

Создайте собственную библиотеку селена

Сначала создайте новый файл python с именем CustomSeleniumLibrary.py. Поместите его туда, где робот может его найти - проще всего просто положить его в ту же папку, что и тестовый набор, который будет его использовать. Поместите в этот файл следующее:

from Selenium2Library import Selenium2Library

# create new class that inherits from Selenium2Library
class CustomSeleniumLibrary(Selenium2Library):
    # create a new keyword called "get webdriver instance"
    def get_webdriver_instance(self):
        return self._current_browser()

Создайте тестовый файл, который использует библиотеку

Затем напишите тестовый пример, который использует это вместо Selenium2Library. Например:

*** Settings ***
| Library | CustomSeleniumLibrary.py
| Suite Teardown | close all browsers

*** Test Cases ***
| Example using custom selenium library
| | Open browser | http://www.example.com | browser=chrome
| | ${webdriver}= | Get webdriver instance
| | log | webdriver: ${webdriver}

Запустить тест

Запустить тест, как и любой другой тест. Когда он завершится, вы увидите что-то подобное в журнале:

16:00:46.887 INFO webdriver: 

Использование объекта в тестовом файле

Сообщение cryptic ... доказывает, что переменная на самом деле содержит ссылку к объекту WebDriver python. Используя синтаксис расширенного синтаксиса робота, вы можете затем вызвать методы и получить доступ к этим объектам, если хотите. Я не рекомендую делать это таким образом, но я думаю, что очень интересно, что робот поддерживает его:

| | log | The page title is ${webdriver.title}

Создание пользовательской библиотеки, которая ссылается на Selenium2Library

. Второй способ выполнения это использование метода робота для получения экземпляра библиотеки, после чего вы можете получить доступ к объекту, как хотите. Это описано в руководстве пользователя робота; см. Получение активного экземпляра библиотеки из Robot Framework в руководстве пользователя Robot Framework .

Например, ключевое слово get_library_instance из приведенного выше примера будет выглядеть так:

from robot.libraries.BuiltIn import BuiltIn

def get_webdriver_instance():
    se2lib = BuiltIn().get_library_instance('Selenium2Library')
    return se2lib._current_browser()

Обратите внимание, что в этом случае вы должны включить как Selenium2Library , так и ваша пользовательская библиотека:

*** Settings ***
| Library | Selenium2Library
| Library | CustomSeleniumKeywords.py
| Suite Teardown | close all browsers

*** Test Cases ***
| Example using custom selenium keyword
| | Open browser | http://www.example.com | browser=chrome
| | ${webdriver}= | Get webdriver instance
| | log | webdriver: ${webdriver}

0
задан Paul Vincent Doroyan 20 March 2019 в 08:30
поделиться