Содержимое setUp
в указанной вами ссылке является инициализацией driver
.Вы можете обработать это в другом классе и определить тип браузера из файла свойств
def get_driver(self):
browser = get_value_from_configurations_file()
url = get_value_from_configurations_file()
driver = None
if browser == 'chrome':
driver = webdriver.Chrome()
elif browser == 'firefox':
driver = webdriver.Firefox()
driver.maximize_window()
driver.get(url)
return driver
. Обычно я использую «посредника» между фабрикой драйверов и тестами для обработки действий driver
и запуска ПО.укажите
class WebApplication:
def __init__(self):
self.__driver = WebDriverFactory().get_driver()
def get_driver(self):
return self.__driver
def get_home_page(self):
return HomePage(self.__driver)
и используйте его из базового класса теста
@pytest.mark.usefixtures("run_for_test")
class AbstractTest(ABC):
web_application = None
@pytest.fixture()
def run_for_test(self, request):
AbstractTest.web_application = WebApplication()
# set up for all tests
yield
# tear down for all tests
Пример теста:
class TestExample(AbstractTest):
def test_example(self):
home_page = \
(self.web_application
.get_home_page())
Таким образом, вы можете написать тест один раз и запустить егоразные браузеры, просто изменив файл конфигурации.