Первый вариант - это можно сделать через миксование классов, так будет меньше всего переделок в коде. Узнать более подробно об этом можно по ссылке
from selenium.webdriver.common.by import By from selenium import webdriver class MainPageLocators(object): login_line = (By.ID, 'loginName') password_line = (By.ID, 'loginPass') enter_button = (By.ID, 'logButton') class BasePage(object): def __init__(self, driver): self.driver = driver class MainPage(BasePage, MainPageLocators): def login(self): element = self.driver.find_element(*self.login_line).send_keys('check_rigth_user') def password(self): element = self.driver.find_element(*self.password_line) element.send_keys('qwerty123') def enter_button_click(self): element = self.driver.find_element(*self.enter_button) element.click() page = MainPage(webdriver.Firefox()) print page.driver print page.login_line print page.login
Ну а во вторых, почему бы не соединить локаторы и действия в один класс ?!
from selenium.webdriver.common.by import By from selenium import webdriver class BasePage(object): def __init__(self, driver): self.driver = driver class MainPage(BasePage): login_line = (By.ID, 'loginName') password_line = (By.ID, 'loginPass') enter_button = (By.ID, 'logButton') def login(self): element = self.driver.find_element(*self.login_line).send_keys('check_rigth_user') def password(self): element = self.driver.find_element(*self.password_line) element.send_keys('qwerty123') def enter_button_click(self): element = self.driver.find_element(*self.enter_button) element.click() page = MainPage(webdriver.Firefox()) print page.driver print page.login_line print page.login