📜  Selenium WebDriver-导航命令

📅  最后修改于: 2020-11-06 04:50:20             🧑  作者: Mango

Selenium WebDriver-导航命令

WebDriver提供了一些基本的浏览器导航命令,这些命令使浏览器可以在浏览器的历史记录中向后或向前移动。

就像WebDriver提供的浏览器方法一样,我们还可以通过在Eclipse面板中键入driver.navigate()来访问WebDriver提供的导航方法。


注意:以“ Navigation”作为关键字的方法被声明为Navigation命令。

给出了一些最常用的Selenium WebDriver浏览器导航命令。

1.导航至命令

方法:

to(String arg0) : void

在WebDriver中,此方法在现有的浏览器窗口中加载新的网页。它接受String作为参数并返回void。

加载/浏览新网页的相应命令可以写为:

driver.navigate().to("www.javatpoint.com");

注意:位于浏览器命令部分的get命令(driver.get(URL);)与Navigation命令具有相同的函数

(driver.navigate().to("www.javatpoint.com"); 

2.转发命令

方法:

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
  • 单击“这是一个链接”链接(此链接会将您重定向到javaTpoint网站)
  • 使用back命令返回首页
  • 再次使用forward命令返回到javaTpoint网站
  • 再次使用To命令返回主页
  • 使用刷新命令刷新浏览器
  • 关闭浏览器

为了进行测试,我们在URL下使用了一个虚拟网页:

https://www.testandquiz.com/selenium/testing.html(您也可以将此虚拟网页用于Selenium测试实践)

  • 步骤1。启动Eclipse IDE,然后打开现有的测试套件“ Demo_Test”,该套件已在WebDriver教程的“ WebDriver安装”部分中创建。
  • 第2步。右键单击“ src”文件夹,然后从“新建”>“类”创建一个新的类文件。

将您的班级名称命名为“ Navigation_command”,然后单击“完成”按钮。

第三步让我们进入编码基础。

  • 要调用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 Class
DesiredCapabilities 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 Class
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
WebDriver driver= new FirefoxDriver(capabilities);
  • 之后,我们需要编写代码以自动执行第二个测试场景(获取所需的URL)

以下是示例代码,可导航到所需的URL:

//Navigate to the desired URL
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
  • 要自动化我们的第三个测试方案,首先我们必须在虚拟测试页面上唯一地标识“ This is a link”链接。

查找唯一标识元素的方法涉及检查HTML代码。

它将启动一个窗口,其中包含开发“这是一个链接”链接所涉及的所有特定代码。从检查器文本框中选择链接文本的名称。

通过链接文本唯一标识Web元素的Java语法写为:

driver.findElement(By.linkText ()

因此,为了在示例网页上找到链接文本,我们将使用其链接文本的值:

driver.findElement(By.linkText (<"This is a Link">))

现在,我们需要编写代码,然后单击链接文本。

这是单击链接文本的示例代码。

// Click on the Link Text using click() command  driver.findElement(By.linkText("This is a Link")).click();

单击后,该链接会将浏览器窗口重定向到javaTpoint网站的官方网页。

  • 为了使第四种测试方案自动化,我们必须还原第三种测试方案所执行的操作。为此,我们将使用“后退”命令撤消单击链接文本后执行的操作。

这是定向到javaTpoint网站后返回首页的示例代码。

// Go back to Home Page
 driver.navigate().back(); 
  • 现在,下一个测试方案要求我们再次转到第三个测试方案所执行的操作,即,该窗口将再次定向到javaTpoint网站。

这是示例代码,可以再次前进到javaTpoint网站的官方网页。

// Go forward to Registration page
driver.navigate().forward();
  • 现在,要自动化第六个测试场景,我们将需要使用To命令再次导航到虚拟网站的主页。

这是返回主页的示例代码。

// Go back to Home page
driver.navigate().to(appUrl);
  • 要刷新浏览器窗口,请使用Refresh命令作为:
// Refresh browser
driver.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 Driver   
        System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );  
              
        // Initialize Gecko Driver using Desired Capabilities Class  
            DesiredCapabilities capabilities = DesiredCapabilities.firefox();  
            capabilities.setCapability("marionette",true);  
            WebDriver driver= new FirefoxDriver(capabilities);  
              
            // Launch Website  
            driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");   

            //Click on the Link Text using click() command  
            driver.findElement(By.linkText("This is a Link")).click();

            //Go back to Home Page
            driver.navigate().back(); 

            //Go forward to Registration page
            driver.navigate().forward();

            // Go back to Home page
            driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");

            //Refresh browser
            driver.navigate().refresh();
      
            //Closing browser
            driver.close(); 
    }
}

要在Eclipse窗口上运行测试脚本,请右键单击屏幕,然后单击

运行方式→Java应用程序

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