Перейти к содержимому

Техники локализации плавающих дефектов
онлайн, начало 19 апреля
Тестирование безопасности
онлайн, начало 21 апреля
Тестирование мобильных приложений
онлайн, начало 21 апреля
Автоматизатор мобильных приложений
онлайн, начало 21 апреля
Фотография

Загрузка файла


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 RoenEr

RoenEr

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Коган Дмитрий Эдуардович

Отправлено 27 декабря 2020 - 14:42

Приветствую. Пытаюсь загрузить файл и столкнулся со следующим(листинг всего кода в файлах вставлять не буду, вставлю только используемое):

Есть файл c локаторами "locators.py":

class LocStatmentsPage(BasePage):
    uploadStatmentButton = (By.XPATH, "//div[@class='flex-column flex-no-shrink']//input[@type='file']")

Так же есть файл "BaseApp.py" (тут у меня действия с локаторами и ожидания)

class BasePage:

    def do_click(self, locator, time=10):
        WebDriverWait(self.driver, time).until(EC.visibility_of_element_located(locator),
        message=f"Не нашел куда нажать. Адрес: {locator}").click()

    def do_send_keys(self, locator, text, time=10):
        WebDriverWait(self.driver, time).until(EC.visibility_of_element_located(locator),
        message=f"Не нашел куда написать. Адрес: {locator}").send_keys(text)

файл statmentsPage.py с действиями на этой странице:

class StatmentsPage(BasePage):

    def upload_statment(self, file):
    return self.do_send_keys(LocStatmentsPage.uploadStatmentButton, file)

И собственно сам тест кейс пишу:

1)Все срабатывает нормально если я пишут так:

def test_load
    ...
    self.driver.find_element(By.XPATH, "//div[@class='flex-column flex-no-shrink']//input[@type='file']").send_keys("D:\\file.xlsx")

2)А вот еси я пишу так все вылетает с ошибкой не найденного локатора по истечению заданных 10 секунд ожидания:

def test_load
    ...
    self.elStatmentsPage = StatmentsPage(self.driver)
    self.elStatmentsPage.upload_statment("D:\\file.xlsx")

Вопрос в том почему у меня не срабатывает когда все раскидано по файлам. Не то что бы меня это сильно напрягает, но хочется разобраться. Буду рад любым подсказкам куда копать.


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 869 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 05 января 2021 - 12:37

Пробовали сравнить значения (локаторов), одинаковы они или нет при выполнении тестов?


  • 1

http://starbugss.blogspot.ru - "Звездные баги", мой блог.


#3 vladMat

vladMat

    Новый участник

  • Members
  • Pip
  • 13 сообщений

Отправлено 07 января 2021 - 06:40

Очень похоже что неправильно определен контекст self.driver. self.driver должен инициализироваться в BasePage, тогда в методы BasePage попадет правильный контекст.

Первое что могу предложить, это убрать в функции do_send_keys - WebDriverWait(self.driver, time).until(EC.visibility_of_element_located(locator),
message=f"Не нашел куда написать. Адрес: {locator}")
Для пробы заменить их на time.wait и self.driver.find_element(*locator).send_keys(text)


 


  • 1

#4 RoenEr

RoenEr

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Коган Дмитрий Эдуардович

Отправлено 06 апреля 2021 - 06:55

Очень похоже что неправильно определен контекст self.driver. self.driver должен инициализироваться в BasePage, тогда в методы BasePage попадет правильный контекст.

Первое что могу предложить, это убрать в функции do_send_keys - WebDriverWait(self.driver, time).until(EC.visibility_of_element_located(locator),
message=f"Не нашел куда написать. Адрес: {locator}")
Для пробы заменить их на time.wait и self.driver.find_element(*locator).send_keys(text)

 

Получилось победить. Вся проблема была в "visibility_of_element_located(locator)". После изменения на invisibility_of_element_located все стало работать нормально.


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале