使用 Selenium Webdriver 刷新页面

在基于 Web 应用程序的测试自动化中,有时需要多次刷新页面才能完全加载所有 Web 元素。在初始页面加载时,某些 Web 元素可能已加载,而所有 Web 元素需要第二次页面刷新才能加载。这可以使用 Selenium WebDriver 提供的刷新命令来完成。

如何在 Selenium 中刷新页面

可以使用 Selenium 中的以下方法执行浏览器刷新操作。我们将在本文中详细讨论以下提到的方法。

  1. Driver.navigate.refresh 命令
  2. Get 方法
  3. Send Keys 命令
  4. Navigate 方法
  5. Driver.navigate.to 命令

1) Driver.navigate.refresh 命令

这是 Selenium WebDriver 提供的用于执行页面刷新操作的内置方法。此命令是测试自动化中最常用的页面刷新操作命令。刷新命令可以简单地使用,如下所示。

driver.get("https://demo.guru99.com/selenium/guru99home/");
driver.navigate().refresh();

Navigation 是一个接口,用于执行各种浏览器操作,例如导航到上一页、导航到下一页、页面刷新、浏览器关闭。Navigation 接口方法可以使用命令 driver.navigate() 访问。Navigation 接口的 Refresh 方法不接受任何参数或返回任何值。

示例

测试场景

  1. 打开带有网页的 Firefox 浏览器 – https://demo.guru99.com/selenium/guru99home
  2. 页面成功加载后,使用 driver.navigate.refresh 方法刷新网页
  3. 使用 driver.close() 方法关闭浏览器

代码

package Guru99Demo;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class RefreshDemo {
public static void main(String args[]) throws InterruptedException
{
System.setProperty("webdriver.chrome.driver", "D: \\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://demo.guru99.com/selenium/guru99home/");
driver.manage().window().maximize();
driver.navigate().refresh();
driver.close();
}
}

代码输出

初始页面加载

Driver Navigate Refresh Command

页面刷新操作后……视频已更改

Driver Navigate Refresh Command

刷新页面的其他多种方法

2) Get 方法

Get 方法可以递归地用于刷新页面。为了实现这一点,我们需要将另一个方法作为参数传递给 get 方法。

示例

driver.get("https://guru99.com.cn");
driver.get(driver.getCurrentURL());

3) Navigate 方法

此方法使用与上述相同的递归概念。getCurrentURL() 方法作为参数传递给 driver.navigate.to 方法。

示例

driver.get("https://guru99.com.cn");
driver.navigate.to(driver.getCurrentURL());

4) 使用 F5 键的 Send Keys 方法

这是 Selenium 中刷新页面的第二种最常用的方法。它将刷新键(F5 键)作为参数传递给 send keys 方法。由于 send keys 仅适用于 Web 元素而不是浏览器,因此我们必须首先在网页上识别一个有效的 Web 元素,然后使用 send keys 方法。这可以按如下所示完成。

示例

driver.get("https://guru99.com.cn");
driver. findElement(By.id("username")).sendKeys(Keys.F5);

5) 使用 ASCII 码的 Send Keys 方法

此方法使用与上述相同的概念,但不是将 F5 键作为参数传递,而是将刷新键的 ASCII 码作为参数发送。这可以按如下所示完成。

driver.get("https://guru99.com.cn");
driver. findElement(By.id("username")).sendKeys(“\uE035”);

摘要

  • 页面刷新操作确保在继续进行测试用例自动化之前完全加载页面的所有 Web 元素
  • Selenium 中最常用的页面刷新方法是 driver.navigate().refresh() 方法
  • Get 方法和 navigate 方法包括 Selenium 中刷新页面的递归方式
  • Send Keys 方法可以通过将 F5 键作为参数或其相应的 ASCII 码来刷新页面