以下操作基于該網站進行示範:https://www.yahoo.com/
一、driver.getTitle()---擷取目前頁面的title
1 package basicweb;
2
3 import static org.junit.jupiter.api.Assertions.fail;
4
5 import java.util.concurrent.TimeUnit;
6
7 import org.junit.jupiter.api.AfterAll;
8 import org.junit.jupiter.api.AfterEach;
9 import org.junit.jupiter.api.BeforeAll;
10 import org.junit.jupiter.api.BeforeEach;
11 import org.junit.jupiter.api.Test;
12 import org.openqa.selenium.WebDriver;
13 import org.openqa.selenium.chrome.ChromeDriver;
14
15 class NavigatingBetweenPages {
16 // 聲明了一個webdriver類型的變量名,對象名為“driver”
17 WebDriver driver;
18 // 定義一個String類型的字元串,用于存放我們需要打開的url
19 String baseUrl;
20
21 @BeforeEach
22 void setUpBeforeClass() throws Exception {
23 // 将這個變量名對象的引用指向ChromeDriver,表示我們需要用谷歌浏覽器來進行自動化操作
24 driver = new ChromeDriver();
25 // 指定我們需要打開的網站
26 baseUrl = "https://www.yahoo.com/";
27 // 隐式等待
28 // .implicitlyWait(時長, 時間機關);下面設定時間為“10秒”
29 // TimeUnit.SECONDS表示秒
30 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
31 // 浏覽器視窗最大化
32 driver.manage().window().maximize();
33 }
34
35 @Test
36 void test() {
37 driver.get(baseUrl);
38 // 擷取目前頁面的title,用String類型的變量來接收
39 String title = driver.getTitle();
40 // 列印title
41 System.out.println(title);
42 }
43
44 @AfterEach
45 void tearDownAfterClass() throws Exception {
46 driver.quit();
47 } }
運作列印結果:
二、driver.getCurrentUrl()--擷取目前頁面的url
package basicweb;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
class NavigatingBetweenPages {
// 聲明了一個webdriver類型的變量名,對象名為“driver”
WebDriver driver;
// 定義一個String類型的字元串,用于存放我們需要打開的url
String baseUrl;
@BeforeEach
void setUpBeforeClass() throws Exception {
// 将這個變量名對象的引用指向ChromeDriver,表示我們需要用谷歌浏覽器來進行自動化操作
// ChromeOptions options = new ChromeOptions();
// options.addArguments("--start-maximized", "allow-running-insecure-content", "--test-type");
driver = new ChromeDriver();
// 指定我們需要打開的網站
baseUrl = "https://www.baidu.com/";
// 隐式等待
// .implicitlyWait(時長, 時間機關);下面設定時間為“10秒”
// TimeUnit.SECONDS表示秒
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// 浏覽器視窗最大化
driver.manage().window().maximize();
// 打開網址
driver.get(baseUrl);
}
@Test
void test() {
// 擷取目前頁面的url
String url = driver.getCurrentUrl();
// 列印url
System.out.println("目前頁面的url為:"+url);
}
@AfterEach
void tearDownAfterClass() throws Exception {
// 關閉浏覽器
driver.quit();
}
}
運作結果為:
三、driver.navigate().to(urlToNavigate)--在未點選登入按鈕的情況下進入指定頁面
driver.navigate().back():傳回上一頁
driver.navigate().forward():跳轉到下一頁
1 package basicweb;
2
3 import java.util.concurrent.TimeUnit;
4
5 import org.junit.jupiter.api.AfterEach;
6 import org.junit.jupiter.api.BeforeEach;
7 import org.junit.jupiter.api.Test;
8 import org.openqa.selenium.WebDriver;
9 import org.openqa.selenium.chrome.ChromeDriver;
10 import org.openqa.selenium.chrome.ChromeOptions;
11
12 class NavigatingBetweenPages {
13 // 聲明了一個webdriver類型的變量名,對象名為“driver”
14 WebDriver driver;
15 // 定義一個String類型的字元串,用于存放我們需要打開的url
16 String baseUrl;
17
18 @BeforeEach
19 void setUpBeforeClass() throws Exception {
20 // 将這個變量名對象的引用指向ChromeDriver,表示我們需要用谷歌浏覽器來進行自動化操作
21 // ChromeOptions options = new ChromeOptions();
22 // options.addArguments("--start-maximized", "allow-running-insecure-content", "--test-type");
23 driver = new ChromeDriver();
24 // 指定我們需要打開的網站
25 baseUrl = "https://www.yahoo.com/";
26 // 隐式等待
27 // .implicitlyWait(時長, 時間機關);下面設定時間為“10秒”
28 // TimeUnit.SECONDS表示秒
29 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
30 // 浏覽器視窗最大化
31 driver.manage().window().maximize();
32 // 打開網址
33 driver.get(baseUrl);
34 }
35
36 @Test
37 void test() throws InterruptedException {
38 // 擷取目前頁面的title,用String類型的變量來接收
39 String title = driver.getTitle();
40 // 列印title
41 System.out.println("頁面标題為:"+title);
42
43 // 擷取目前頁面的url
44 String url = driver.getCurrentUrl();
45 // 列印url
46 System.out.println("第一次進入頁面時的url:"+url);
47
48 // 建立一個String的變量用于存儲“登入”頁面的url
49 String urlToNavigate = "https://login.yahoo.com/config/login?.src=fpctx&.intl=us&.lang=en-US&.done=https%3A%2F%2Fwww.yahoo.com";
50 // 跳轉到登入頁面
51 driver.navigate().to(urlToNavigate);
52 url = driver.getCurrentUrl();
53 System.out.println("第一次跳轉後的url:"+url);
54
55 // 強制等待2秒(需要抛出異常)
56 Thread.sleep(2000);
57 // 傳回上一次打開的url
58 driver.navigate().back();
59 url = driver.getCurrentUrl();
60 System.out.println("傳回到跳轉前頁面的url(傳回上一頁):"+url);
61
62 // 強制等待2秒(需要抛出異常)
63 Thread.sleep(2000);
64 // 跳轉到下一頁
65 driver.navigate().forward();
66 url = driver.getCurrentUrl();
67 System.out.println("傳回到跳轉前頁面的url(跳轉到下一頁):"+url);
68
69 }
70
71 @AfterEach
72 void tearDownAfterClass() throws Exception {
73 // 退出浏覽器
74 driver.quit();
75 }
76 }
運作結果為:
四、重新整理頁面
方法一:driver.navigate().refresh();
方法二:driver.get(url);将通過driver.getCurrentUrl();方法擷取到的url重新通過“.get”方法打開,也相當于重新加載重新整理頁面
package basicweb;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
class NavigatingBetweenPages {
// 聲明了一個webdriver類型的變量名,對象名為“driver”
WebDriver driver;
// 定義一個String類型的字元串,用于存放我們需要打開的url
String baseUrl;
@BeforeEach
void setUpBeforeClass() throws Exception {
// 将這個變量名對象的引用指向ChromeDriver,表示我們需要用谷歌浏覽器來進行自動化操作
// ChromeOptions options = new ChromeOptions();
// options.addArguments("--start-maximized", "allow-running-insecure-content", "--test-type");
driver = new ChromeDriver();
// 指定我們需要打開的網站
baseUrl = "https://www.yahoo.com/";
// 隐式等待
// .implicitlyWait(時長, 時間機關);下面設定時間為“10秒”
// TimeUnit.SECONDS表示秒
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// 浏覽器視窗最大化
driver.manage().window().maximize();
// 打開網址
driver.get(baseUrl);
}
@Test
void test() throws InterruptedException {
// 擷取目前頁面的title,用String類型的變量來接收
String title = driver.getTitle();
// 列印title
System.out.println("頁面标題為:"+title);
// 擷取目前頁面的url
String url = driver.getCurrentUrl();
// 列印url
System.out.println("第一次進入頁面時的url:"+url);
// 建立一個String的變量用于存儲“登入”頁面的url
String urlToNavigate = "https://login.yahoo.com/config/login?.src=fpctx&.intl=us&.lang=en-US&.done=https%3A%2F%2Fwww.yahoo.com";
// 跳轉到登入頁面
driver.navigate().to(urlToNavigate);
url = driver.getCurrentUrl();
System.out.println("第一次跳轉後的url:"+url);
// 強制等待2秒(需要抛出異常)
Thread.sleep(2000);
// 傳回上一次打開的url
driver.navigate().back();
url = driver.getCurrentUrl();
System.out.println("傳回到跳轉前頁面的url(傳回上一頁):"+url);
// 強制等待2秒(需要抛出異常)
Thread.sleep(2000);
// 跳轉到下一頁
driver.navigate().forward();
url = driver.getCurrentUrl();
System.out.println("傳回到跳轉前頁面的url(跳轉到下一頁):"+url);
Thread.sleep(2000);
// 重新整理頁面:方法一
driver.navigate().refresh();
// 重新整理頁面:方法二
// driver.get(url);
}
@AfterEach
void tearDownAfterClass() throws Exception {
// 退出浏覽器
driver.quit();
}
}
五、driver.getPageSource()--擷取目前頁面的“頁面源代碼
1 package basicweb;
2
3 import java.util.concurrent.TimeUnit;
4
5 import org.junit.jupiter.api.AfterEach;
6 import org.junit.jupiter.api.BeforeEach;
7 import org.junit.jupiter.api.Test;
8 import org.openqa.selenium.WebDriver;
9 import org.openqa.selenium.chrome.ChromeDriver;
10 import org.openqa.selenium.chrome.ChromeOptions;
11
12 class NavigatingBetweenPages {
13 // 聲明了一個webdriver類型的變量名,對象名為“driver”
14 WebDriver driver;
15 // 定義一個String類型的字元串,用于存放我們需要打開的url
16 String baseUrl;
17
18 @BeforeEach
19 void setUpBeforeClass() throws Exception {
20 // 将這個變量名對象的引用指向ChromeDriver,表示我們需要用谷歌浏覽器來進行自動化操作
21 // ChromeOptions options = new ChromeOptions();
22 // options.addArguments("--start-maximized", "allow-running-insecure-content", "--test-type");
23 driver = new ChromeDriver();
24 // 指定我們需要打開的網站
25 baseUrl = "https://www.yahoo.com/";
26 // 隐式等待
27 // .implicitlyWait(時長, 時間機關);下面設定時間為“10秒”
28 // TimeUnit.SECONDS表示秒
29 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
30 // 浏覽器視窗最大化
31 driver.manage().window().maximize();
32 // 打開網址
33 driver.get(baseUrl);
34 }
35
36 @Test
37 void test() throws InterruptedException {
38 // 擷取目前頁面源代碼
39 String pageSource = driver.getPageSource();
40 System.out.println(pageSource);
41
42 }
43
44 @AfterEach
45 void tearDownAfterClass() throws Exception {
46 // 退出浏覽器
47 driver.quit();
48 }
49 }
運作結果:
我們也可以在浏覽器中直接擷取目前浏覽頁面源代碼:點選滑鼠右擊---》檢視網頁源代碼