Обработка исключительной ссылки на простой элемент Coverfox с использованием Python pytest selenium - PullRequest
1 голос
/ 08 ноября 2019

содержимое test_homepage.py

    def test_insurance_pages_open_successfully_using_fixtures(page_object, load_home_page, insurance_data):
            page_object.open_insurance(insurance_data)
            assert page_object.ui.contains_text('Buying two-wheeler insurance from Coverfox is simple')

open_insurance функция в объекте страницы home_page.py

    def open_insurance(self, insurance):
        self._ui.move_to(locators.drp_dwn_insurance)
        self._ui.click(format_locator(locators.lnk_insurance, insurance))

move_to функция в другом file.py

    def move_to(self, locator):
        to_element = self.find_element(locator)
        print("element value", to_element)
        self.action.move_to_element(to_element).perform()

Здесь я пытаюсь указать, что test_insurance_pages_open_successfully_using_fixtures принимает 3 прибора в качестве аргументов 1 .

page_object, который предоставляет объект страницы на уровне сеанса 2 .

load_home_page для повторной загрузки домашней страницы на уровне сеанса 3 .

insurance_data fixture в conftest.py, который список поставщиков текстов ссылок читает из некоторого CSV-файла

Таким образом, по сути, он загрузит страницу и откроет все ссылки по одной для веб-сайта -https://www.coverfox.com/

Первый тестовый пример проходит для ссылки Двухколесное страхование, но для 2-го запуска тестовых данных он не проходит, исключая ссылку на устаревший элемент в точке, где он пытается перейти к (move_to function) страховая ссылка снова.

Я нигде не храню элементы, а функция написана так, что она снова найдет элемент.

Что вызывает это? Или Pytest выполняет какое-то кэширование элементов в фоновом режиме

1 Ответ

0 голосов
/ 08 ноября 2019

Похоже, что вы должны использовать функциональный уровень fixture для load_home_page или обновить страницу после выполнения некоторых действий.

В текущем подходе (по крайней мере, как вы его описали) выиспользование одной и той же страницы и состояния страницы для различных тестов.

Не могли бы вы также поделиться кодом приборов?

...