Ответ 1
Вы можете использовать метод Navigation#refresh
:
driver.navigate.refresh
Следуйте приведенной ниже части кода:
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 мог работать за один раз?
Вы можете использовать метод Navigation#refresh
:
driver.navigate.refresh
Как упоминалось в комментарии @Nakilon, с драйверами не-Poltergeist в Capybara для обновления текущей страницы используйте следующее:
page.driver.browser.navigate.refresh
Но для универсального исправления используйте:
page.evaluate_script 'window.location.reload()'
Для capybara, я рекомендую
page.evaluate_script("window.location.reload()")
Это также работает с poltergeist/phantomjs
В подобных случаях я написал код для проверки наличия поля ввода. Если он не существует, обновите его.
driver.refresh()
Изменить: мой первоначальный ответ предполагал, что Капибара используется.
Вы можете снова использовать driver.get
на странице для обновления. Нет никакой разницы между нажатием кнопки обновления в браузере и вводом того же URL-адреса для повторной загрузки страницы, поэтому driver.get
достаточно для этого поведения.
Для Capybara, я думаю, комментарий Tommyixi является лучшим:
visit current_path
Вы можете использовать - driver.navigate().refresh();
.
Посмотрите здесь, например, http://reditblog.blogspot.in/2014/10/how-to-refresh-current-web-page.html