Selenium WebDriver-导航命令图解

WebDriver提供了一些基本的浏览器导航命令, 这些命令使浏览器可以在浏览器的历史记录中向后或向前移动。
就像WebDriver提供的浏览器方法一样, 我们还可以通过在Eclipse面板中键入driver.navigate()来访问WebDriver提供的导航方法。

Selenium WebDriver-导航命令图解

文章图片
注意:以” Navigation” 作为关键字的方法被声明为Navigation命令。 给出了一些最常用的Selenium WebDriver浏览器导航命令。
1.导航到命令
方法:
to(String arg0) : void

在WebDriver中, 此方法在现有的浏览器窗口中加载新的网页。它接受String作为参数并返回void。
加载/导航新网页的相应命令可以写为:
driver.navigate().to("www.srcmini.com");

注意:位于浏览器命令部分的get命令(driver.get(URL); )与Navigation命令具有相同的功能
(driver.navigate().to("www.srcmini.com");

2.转发命令
【Selenium WebDriver-导航命令图解】方法:
to(String arg0) : void

在WebDriver中, 此方法使Web浏览器可以在现有浏览器窗口中单击前进按钮。它既不接受任何内容也不返回任何内容。
在浏览器历史记录上将你向前移动一页的相应命令可以写为:
driver.navigate().forward();

3.后退命令
方法:
back() : void

在WebDriver中, 此方法使Web浏览器可以单击现有浏览器窗口中的” 后退” 按钮。它既不接受任何内容也不返回任何内容。
可以使你在浏览器历史记录上返回一页的相应命令可以写为:
driver.navigate().back();

4.刷新命令
方法:
refresh() : void

在WebDriver中, 此方法刷新/重新加载现有浏览器窗口中的当前网页。它既不接受任何内容也不返回任何内容。
可以使你在浏览器历史记录上返回一页的相应命令可以写为:
driver.navigate().refresh();

让我们考虑一个示例测试脚本, 该脚本将涵盖WebDriver提供的大多数导航命令。
在此示例测试中, 我们将自动执行以下测试方案:
  • 调用Firefox浏览器
  • 导航到URL:https://www.testandquiz.com/selenium/testing.html
  • 单击” 这是一个链接” 链接(此链接会将你重定向到srcmini网站)
  • 使用back命令返回首页
  • 再次使用forward命令返回到srcmini网站
  • 再次使用To命令返回主页
  • 使用刷新命令刷新浏览器
  • 关闭浏览器
为了进行测试, 我们在URL下使用了一个虚拟网页:
https://www.testandquiz.com/selenium/testing.html(你也可以将此虚拟网页用于Selenium测试实践)
  • 步骤1。启动Eclipse IDE, 并打开现有的测试套件” Demo_Test” , 该套件已在WebDriver教程的” WebDriver安装” 部分中创建。
  • 第2步。右键单击” src” 文件夹, 然后从” 新建” > ” 类” 创建一个新的类文件。
Selenium WebDriver-导航命令图解

文章图片
将你的班级名称命名为” Navigation_command” , 然后单击” 完成” 按钮。
Selenium WebDriver-导航命令图解

文章图片
第三步让我们进入编码基础。
  • 要调用Firefox浏览器, 我们需要下载Gecko驱动程序并为Gecko驱动程序设置系统属性。
这是为Gecko驱动程序设置系统属性的示例代码:
// System Property for Gecko Driver System.setProperty("webdriver.gecko.driver", "D:\\GeckoDriver\\geckodriver.exe" )

之后, 我们必须使用所需功能类初始化Gecko驱动程序。
这是使用DesiredCapabilities类初始化壁虎驱动程序的示例代码。
// Initialize Gecko Driver using Desired Capabilities ClassDesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); WebDriver driver= new FirefoxDriver(capabilities);

结合以上两个代码块, 我们将获得代码段以启动Firefox浏览器。
// System Property for Gecko Driver System.setProperty("webdriver.gecko.driver", "D:\\GeckoDriver\\geckodriver.exe" ); // Initialize Gecko Driver using Desired Capabilities ClassDesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); WebDriver driver= new FirefoxDriver(capabilities);

  • 之后, 我们需要编写代码以自动执行第二个测试场景(获取所需的URL)
以下是示例代码, 可导航到所需的URL:
//Navigate to the desired URLdriver.navigate().to("https://www.testandquiz.com/selenium/testing.html");

  • 要自动化我们的第三个测试方案, 首先我们必须在虚拟测试页面上唯一地标识” This is a link” 链接。
查找唯一标识元素的方法涉及检查HTML代码。
  1. 在你的firefox浏览器中打开URL:https://www.testandquiz.com/selenium/testing.html。
  2. 右键单击” 这是一个链接” 链接文本, 然后选择” 检查元素” 。
Selenium WebDriver-导航命令图解

文章图片
它将启动一个窗口, 其中包含开发” 这是一个链接” 链接所涉及的所有特定代码。从检查器文本框中选择链接文本的名称。
Selenium WebDriver-导航命令图解

文章图片
通过链接文本唯一标识Web元素的Java语法写为:
driver.findElement(By.linkText (< linktext> )

因此, 为了在示例网页上找到链接文本, 我们将使用其链接文本的值:
driver.findElement(By.linkText (< "This is a Link"> ))

现在, 我们需要编写代码, 单击链接文本。
这是单击链接文本的示例代码。
// Click on the Link Text using click() commanddriver.findElement(By.linkText("This is a Link")).click();

单击后, 该链接会将浏览器窗口重定向到srcmini网站的官方网页。
  • 为了使第四种测试方案自动化, 我们必须还原第三种测试方案所执行的操作。为此, 我们将使用” 后退” 命令撤消单击链接文本后执行的操作。
这是定向到srcmini网站后返回首页的示例代码。
// Go back to Home Page driver.navigate().back();

  • 现在, 下一个测试方案要求我们再次转到第三个测试方案执行的操作, 即, 该窗口将再次定向到srcmini网站。
这是示例代码, 可以再次前进到srcmini网站的官方网页。
// Go forward to Registration pagedriver.navigate().forward();

  • 现在, 要自动化第六个测试场景, 我们将需要使用To命令再次导航到虚拟网站的主页。
这是返回主页的示例代码。
// Go back to Home pagedriver.navigate().to(appUrl);

  • 要刷新浏览器窗口, 请使用Refresh命令, 如下所示:
// Refresh browserdriver.navigate().refresh();

  • 最后, 给定的代码片段将终止该过程并关闭浏览器。
driver.close();

将以上所有代码块组合在一起, 我们将获得执行测试脚本” Navigation_command” 所需的源代码。
最终的测试脚本将如下所示:
(我们在每个部分都嵌入了注释, 以清楚地说明步骤)
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class Navigation_command {public static void main(String[] args) {// System Property for Gecko DriverSystem.setProperty("webdriver.gecko.driver", "D:\\GeckoDriver\\geckodriver.exe" ); // Initialize Gecko Driver using Desired Capabilities ClassDesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); WebDriver driver= new FirefoxDriver(capabilities); // Launch Websitedriver.navigate().to("https://www.testandquiz.com/selenium/testing.html"); //Click on the Link Text using click() commanddriver.findElement(By.linkText("This is a Link")).click(); //Go back to Home Pagedriver.navigate().back(); //Go forward to Registration pagedriver.navigate().forward(); // Go back to Home pagedriver.navigate().to("https://www.testandquiz.com/selenium/testing.html"); //Refresh browserdriver.navigate().refresh(); //Closing browserdriver.close(); }}

要在Eclipse窗口上运行测试脚本, 请右键单击屏幕, 然后单击
作为→Java应用程序运行
Selenium WebDriver-导航命令图解

文章图片
执行后, 测试脚本将启动Firefox浏览器并自动执行所有测试方案。

    推荐阅读