Я ищу более элегантный способ обновления веб-страницы во время тестов (я использую Selenium2). Я просто отправляю клавишу F5, но мне интересно, есть ли у драйвера метод обновления всей веб-страницы Вот мой код
while(driver.findElements(By.xpath("//*[text() = 'READY']")).size() == 0 )
driver.findElement(By.xpath("//body")).sendKeys(Keys.F5);
//element appear after text READY is presented
driver.findElement(By.cssSelector("div.column a")).click();
Возможно, это лучшее решение для поиска элемента на обновленной вручную странице.
selenium
refresh
webdriver
selenium-webdriver
pbaranski
источник
источник
driver.navigate().refresh()
в заголовке запроса говорится «no-cache» и, как результат, безоговорочно перезагружает весь контент. Принимая во внимание, что нажатие F5 может привести к запросу «If-Modified-Since», который может получить ответ «304 Not Modified». Вы должны помнить об этой разнице, если выполняете нагрузочное тестирование.В Python есть способ сделать это:
driver.refresh()
. Это может быть не так в Java.Кроме того, вы могли бы
driver.get("http://foo.bar");
, хотя я думаю, что метод обновления должен работать просто отлично.источник
driver.get("http://foo.bar")
возможно, просто используйтеdriver.get(driver.current_url)
В питоне
Используя встроенный метод
или, выполняя JavaScript
источник
5 различных способов обновить веб-страницу с помощью Selenium Webdriver
Специального дополнительного кодирования нет. Я только что использовал существующие функции по-разному, чтобы заставить его работать. Они здесь :
Использование метода sendKeys.Keys
Использование метода navigate.refresh ()
Использование метода navigate.to ()
Использование метода get ()
Используя SendKeys () метод
источник
Найдены различные подходы к обновлению приложения в селене: -
Для реального кода, пожалуйста, перейдите по ссылке http://www.ufthelp.com/2014/11/Methods-Browser-Refresh-Selenium.html
источник
Вот немного другая версия C #:
источник
Альтернатива для обновления страницы (F5)
(или)
источник
Важно отметить, что вызов driver.navigate (). Refresh () иногда кажется асинхронным, то есть он не ожидает завершения обновления, он просто «запускает обновление» и не блокирует дальнейшее выполнение. пока браузер перезагружает страницу.
Хотя кажется, что это происходит только в меньшинстве случаев, мы решили, что лучше убедиться, что это работает на 100%, добавив ручную проверку, действительно ли страница начала перезагружаться.
Вот код, который я написал для этого в нашем объектном классе базовой страницы:
Некоторые заметки:
Опять же, в подавляющем большинстве случаев цикл do / while запускается один раз, потому что код, выходящий за пределы navigate (). Refresh (), не выполняется до тех пор, пока браузер не перезагрузит страницу полностью, но мы видели случаи, когда на самом деле этот цикл занимает несколько секунд, потому что navigate (). refresh () не блокировался до завершения загрузки браузера.
источник
Вы также можете попробовать
источник
Существует также случай, когда вы хотите обновить только конкретный iframe на странице, а не всю страницу.
Вы делаете это следующим образом:
источник
В PHP:
источник
Еще один способ обновить текущую страницу, используя селен в Java.
Использование этого обновит текущую страницу, например, нажав на адресную строку браузера и нажав клавишу ввода.
источник
В R вы можете использовать метод refresh, но для начала перейдем к URL-адресу с помощью метода navigate:
источник