1. 程式人生 > >Selenium初級 | 使用navigate系列方法操作網頁

Selenium初級 | 使用navigate系列方法操作網頁

前面我們學了使用get系列方法去開啟網頁,獲取頁面標題等,使用navigate系列的方法也可以開啟網頁,還可以在不同的頁面間進行切換,比如前進到上一個頁面,回退到下一個頁面。

這些操作和get系列方法不同的是,get系列方法每一個都是全新的操作,相當於自帶了一個預設的重新整理頁面的功能,而navigate系列的方法是基於瀏覽器的歷史記錄在操作。

本篇文章介紹四個最常用的navigate系列的方法:

  • navigate().to()

  • navigate().back()

  • navigate().forward()

  • navigate().refresh()

下面具體來介紹一下這四個方法:

navigate().to():

和get()方法基本相同,都是用來開啟指定的網頁地址

//使用navigate.to開啟指定網頁地址:百度新聞
driver.navigate().to("http://news.baidu.com/");

navigate().back()

當在同一個視窗開啟2個以上的頁面後,瀏覽器的前進和後退按鈕就可以使用了,見上圖標註。navigate().back()指回退到上一個頁面。

//使用navigate.back返回到百度新聞頁
driver.navigate().back();

navigate().forward()

navigate().forward()指前進到下一個頁面,相當於點選瀏覽器欄的前進按鈕,見上圖標註。

//使用navigate.forward返回到百度國內新聞頁
 driver.navigate().forward();

navigate().refresh()

這個很好理解,就是簡單的重新整理當前頁面。

比如有的頁面在增加一條記錄後沒有自動重新整理,看不到新增的記錄,此時可以用navigate().refresh()進行重新整理。

 //使用navigate.refresh重新整理當前頁面
  driver.navigate().refresh();

下面是一個使用這四個方法的場景:

  1. 開啟百度新聞頁面
  2. 點選國內新聞連結(注:這樣就在同一個視窗產生了兩個頁面的歷史記錄)
  3. 回退到第一次開啟的百度新聞頁面
  4. 前進到國內新聞頁面
  5. 重新整理國內新聞頁面

下面是實現上面場景的完整的指令碼:

package basiclevel;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Navigations {

	public static void main(String[] args) throws InterruptedException {
		
	//定義gecko driver的獲取地址
        System.setProperty("webdriver.gecko.driver", "D:\\BrowserDriver\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        
        driver.manage().window().maximize();
        
        //使用navigate.to開啟指定網頁地址:百度新聞
        driver.navigate().to("http://news.baidu.com/");
        
        //點選開啟另一個頁面:國內新聞
        driver.findElement(By.linkText("國內")).click();
        
        Thread.sleep(3000);
        
        //使用navigate.back返回到百度新聞頁
        driver.navigate().back();
        
        Thread.sleep(3000);
        
        
        //使用navigate.forward返回到百度國內新聞頁
        driver.navigate().forward();
        
        Thread.sleep(3000);
        
        
        //使用navigate.refresh重新整理當前頁面
        driver.navigate().refresh();
        
        driver.quit();
        

	}

}

****************************************************************************************************

最近我會持續更新Selenium Java的相關文章,也請大家多多關注我的視訊課程

全網最新、最完整、最具價效比、並且會持續保持更新的自動化測試課程

*****************************************************************************************************