Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Тест на Python + Selenium Webdriver + Robot framework. Создание объекта класса (__init__(self,driver)) на Robot framework

robot-framework
python
webdriver
Теги: #<Tag:0x00007f7b70b1b488> #<Tag:0x00007f7b70b1b2f8> #<Tag:0x00007f7b70b1b118>

(Anna_tigris) #1

Нужна Ваша помощь. Есть автотесты на #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

(rmerkushin) #2

Посмотрите вот эту тему, может поможет: