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

Фотография

При вызове метода current_url подтягивается url до redirect

redirect current_url

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

#1 beseno4ek

beseno4ek

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Степанова Мария


Отправлено 14 мая 2019 - 14:38

Добрый день!

Задача проверить, что кейс выполнен успешно и перешел по успешному url. Стек webrdriver+python

Есть страница, после заполнения и отправки данных, если все ок, то браузер переходит на success_url

Я сохраняю текущий url, нажимаю кнопку отправить и жду перехода на новую страницу. В проверке сравниваю страницы

Скрытый текст

 

Тест не проходит. Смотрю в отладчике и почему-то в current_url сохранена ссылка до редиректа. А в driver.current_url хранится нужный url. Почему так происходит? Что нужно сделать, чтобы страница взяла верный url. Может нужно изменить ожидание? 

 


  • 0

#2 Snap

Snap

    Специалист

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


Отправлено 14 мая 2019 - 16:45

Не разбираюсь в python, но если все так как вы говорите, то можно попробовать сделать так

assert (driver.current_url.startswith("http://yandex.ru"))

Правда это не объясняет почему в переменную сохраняется другое значение.


  • 0

#3 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 15 мая 2019 - 15:43

Добрый день!

Задача проверить, что кейс выполнен успешно и перешел по успешному url. Стек webrdriver+python

Есть страница, после заполнения и отправки данных, если все ок, то браузер переходит на success_url

Я сохраняю текущий url, нажимаю кнопку отправить и жду перехода на новую страницу. В проверке сравниваю страницы

Скрытый текст

 

Тест не проходит. Смотрю в отладчике и почему-то в current_url сохранена ссылка до редиректа. А в driver.current_url хранится нужный url. Почему так происходит? Что нужно сделать, чтобы страница взяла верный url. Может нужно изменить ожидание? 

Смотрим реализацию в гитхабе:

@property
def current_url(self):
    return self.execute(Command.GET_CURRENT_URL)['value']

https://github.com/S...te/webdriver.py

 

Т.е., в отладчике, когда смотрите driver.current_url, команда драйверу посылается заново, и видно обновленное значение.

Почему оно не обновляется сразу после ожидания? Возможно, ожидание срабатывает на какую-то другую, более раннюю смену ссылки.

Что делать? Ну, например, написать своё ожидание. Explicit is better и всё такое.


  • 0


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

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