Java&Selenium&Firefox/Chrome: 无法按 CTRL + F5 硬刷新页面
Java&Selenium&Firefox/Chrome: unable to press CTRL + F5 for page hard refresh
请看我的代码:
WebDriver driver = new FirefoxDriver();
driver.navigate().to("https://example.com");
Thread.sleep(5_000);
driver.findElement(By.tagName("html")).sendKeys(Keys.CONTROL, Keys.F5);
Thread.sleep(5_000);
driver.quit();
页面应该刷新,但从未发生过。
我尝试了不同的方法来编写代码来执行按键操作,但没有成功。
更新
如下评论所述,可以使用 driver.navigate().refresh()
方法重新加载页面。
我需要执行硬刷新才能进行代理轮换。 driver.navigate().refresh()
方法适用于 Firefox,但不适用于 Chrome。
有人可以在 Chrome 中进行硬刷新吗?
所以要让它工作,你必须使用 Selenium 中的 Action class。
对于 Windows 中的 Chrome:
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL).sendKeys(Keys.F5).keyUp(Keys.CONTROL).perform();
其他使用 JavascriptExecutor 的技巧:
reload() 方法用于重新加载当前文档。 reload() 方法的作用与浏览器中的重新加载按钮相同。默认情况下,reload() 方法从缓存中重新加载页面,但您可以通过将 forceGet 参数设置为 true:location 来强制它从服务器重新加载页面。重新加载(真)。
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("location.reload(true);");
参考:
https://www.selenium.dev/documentation/en/webdriver/keyboard/
请看我的代码:
WebDriver driver = new FirefoxDriver();
driver.navigate().to("https://example.com");
Thread.sleep(5_000);
driver.findElement(By.tagName("html")).sendKeys(Keys.CONTROL, Keys.F5);
Thread.sleep(5_000);
driver.quit();
页面应该刷新,但从未发生过。 我尝试了不同的方法来编写代码来执行按键操作,但没有成功。
更新
如下评论所述,可以使用 driver.navigate().refresh()
方法重新加载页面。
我需要执行硬刷新才能进行代理轮换。 driver.navigate().refresh()
方法适用于 Firefox,但不适用于 Chrome。
有人可以在 Chrome 中进行硬刷新吗?
所以要让它工作,你必须使用 Selenium 中的 Action class。
对于 Windows 中的 Chrome:
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL).sendKeys(Keys.F5).keyUp(Keys.CONTROL).perform();
其他使用 JavascriptExecutor 的技巧:
reload() 方法用于重新加载当前文档。 reload() 方法的作用与浏览器中的重新加载按钮相同。默认情况下,reload() 方法从缓存中重新加载页面,但您可以通过将 forceGet 参数设置为 true:location 来强制它从服务器重新加载页面。重新加载(真)。
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("location.reload(true);");
参考:
https://www.selenium.dev/documentation/en/webdriver/keyboard/