《手把手教你》系列技巧篇(十二)-java+ selenium自動化測試-元素定位大法之By link text(詳細教程)


1.簡介

 本文按計划就要開始介紹link text,顧名思義是通過鏈接定位的(官方說法:超鏈接文本定位)。什么是linktext呢,就是我們在任何一個網頁上都可以看到有一個或者多個鏈接,上面有一個文字描述,點擊這個文字,就可以跳轉到其他頁面。這個就是linkText。

2.常用定位方法(8種)

(1)id
(2)name
(3)class name
(4)tag name
(5)link text(今天講解)
(6)partial link text
(7)xpath
(8)css selector

3.自動測試實戰

 恰好趕上東京奧運會,那宏哥就以百度首頁的“奧運獎牌榜 最新排名”為例,給小伙伴或童鞋們實踐一下。點擊首頁那個“奧運獎牌榜 最新排名”鏈接,觀察是否進入到“奧運獎牌榜 最新排名”頁面。這里的例子比較簡單,意在說明用法。

3.1大致步驟

1.訪問度娘首頁。

2.通過linkText定位到“奧運獎牌榜 最新排名”按鈕,點擊一下。

3.2代碼設計

3.3參考代碼

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 *
 * 2021年7月28日
 */
public class FindElement_LinkText {
     
    public static void main(String[] args) throws Exception {
        
        System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
        
        WebDriver driver = new ChromeDriver();
        
        driver.manage().window().maximize();
        
        driver.get("https://www.baidu.com");
    
        //By linkText 查找元素
        driver.findElement(By.linkText("奧運獎牌榜 最新排名")).click();
        
        Thread.sleep(1000);
        
        //判斷打開頁面是不是奧運獎牌榜 最新排名,這里用url作為驗證
        assert driver.getCurrentUrl() == "https://www.baidu.com/s?wd=%E5%A5%A5%E8%BF%90%E4%BC%9A&rsv_dl=pc_index_tips";
        
        System.out.println("斷言通過!");
        
        driver.close();
    }

    
}

3.4運行代碼

1.運行代碼,右鍵Run AS->java Application,控制台輸出,如下圖所示:

2.運行代碼后電腦端的瀏覽器的動作,如下小視頻所示:

4.小結

好了,到此關於linkText定位(精准匹配)也介紹完了,感謝你耐心的閱讀。

linkText也是遵循“匹配第一個”的原則,同一網頁多次出現的話找第一個。

5.拓展

因為linkText定位(精准匹配),因為宏哥為了驗證猜測,就將“奧運獎牌榜 最新排名”后邊的最新排名去掉了,大家猜猜運行代碼還能定位到元素進行點擊跳轉新頁面嗎,答案:就是不能。

5.1運行代碼

1.運行代碼,右鍵Run AS->java Application,控制台輸出,如下圖所示:

2.運行代碼后電腦端的瀏覽器的動作,如下小視頻所示:

從控制台我們可以看出已經報錯了(Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"link text","selector":"奧運獎牌榜 "}),從視頻中可以看到進入百度以后,就沒有進入奧運獎牌榜的頁面。

出現這種情況的原因是:linkText是超鏈接文本精准匹配,而不是模糊匹配,下一篇宏哥將會講解linkText的一個加強版partialLinkText(超鏈接文本模糊匹配)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM