Подтвердить что ты не робот

Как обновить страницу в браузере с помощью selenium-webdriver?

Следуйте приведенной ниже части кода:

driver.get "https://example.com/"

element = driver.find_element :name => "username"
element.send_keys "*****"
element = driver.find_element :name => "password"
element.send_keys "*****"
element.submit

Теперь укажите, когда driver открыл URL-адрес браузера, несколько раз следующую страницу, на которую должны быть добавлены имя пользователя и пароль. script, а не входящий, что приводит к ошибке script. Некоторые промежуточные страница просит нас нажать кнопку "повторить попытку" или "обновить стр. Таким образом, script, когда такой случай произошел, прекратил выполнение, так как не получая упомянутый элемент.

Итак, есть ли способ обновить эту промежуточную страницу со словом "sleep" перед тем, как перейти на страницу "Вход в систему", чтобы script мог работать за один раз?

4b9b3361

Ответ 1

Вы можете использовать метод Navigation#refresh:

driver.navigate.refresh

Ответ 2

Как упоминалось в комментарии @Nakilon, с драйверами не-Poltergeist в Capybara для обновления текущей страницы используйте следующее:

page.driver.browser.navigate.refresh

Но для универсального исправления используйте:

page.evaluate_script 'window.location.reload()'

Ответ 3

Для capybara, я рекомендую

page.evaluate_script("window.location.reload()")

Это также работает с poltergeist/phantomjs

Ответ 4

В подобных случаях я написал код для проверки наличия поля ввода. Если он не существует, обновите его.

driver.refresh()

Ответ 5

Изменить: мой первоначальный ответ предполагал, что Капибара используется.

Вы можете снова использовать driver.get на странице для обновления. Нет никакой разницы между нажатием кнопки обновления в браузере и вводом того же URL-адреса для повторной загрузки страницы, поэтому driver.get достаточно для этого поведения.