Нужна Ваша помощь. Есть автотесты на #python + #webdriver . Нужно прикрутить еще и #robot-framework (часть тестов уже написана предыдущими тестировщиками) проблема в том что #architecture нет вообще никакой, есть два класса в которых огромная куча методов. Хочу попытаться все превести в нормальный вид и сделать архитектуру #page-object . Но застряла вот на таком:
Например на Python есть 2 класс, Wrapper (работает с драйвером) и Page (будет работать с функционалом на странице)
Wrapper.py
from selenium import webdriver
class Wrapper(object):
def create_driver(self):
self.driver = webdriver.Chrome()
def get_driver(self)
return self.driver
...
Page.py
class Page(object):
def __init__(self, driver):
self.driver = driver
self.bo_url = "https://gmail.com"
def login_to_gmail(self, login, password)
self.driver.get(self.bo_url)
self.login = self.driver.find_element_by_xpath(XPATH_TO_ELEMENT)
self.password = self.driver.find_element_by_xpath(XPATH_TO_ELEMENT)
self.login.send_keys(login)
self.password.send_keys(password)
self.driver.find_element_by_xpath(XPATH_TO_BTN_LOGIN).click()
На Python этот тест я запускаю:
wrapper = Wrapper().create_driver()
driver = wrapper.get_driver()
page = Page(driver)
page.login_to_gmail("mylogin", "mypassword")
Но не могу его запустить на Robot framework, не знаю как создать объект Page. Если б в конструкторе не было переменной driver (def init(self)) тогда я запускаю тест на Роботе следующим образом:
runTest.robot
Library ../src/selenium/Wrapper.py
Library ../src/selenium/Page.py
*** Test Cases ***
Wrapper.Create Driver
Page.Login To Gmail mylogin mypassword