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/