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


1.簡介

 本文按計划就要開始介紹partial link text,顧名思義是通過鏈接定位的(官方說法:超鏈接文本定位)。什么是partial link text呢,看到part這個單詞我們就可以知道,當這個文字超鏈接太長時,我們不想輸入那么多的字,就可以調用這個方法,主要輸入屬於這個超鏈接文字的部分就可以了。當然,為了防止因為文字出現位置太多,定位失敗,建議選擇的字符要有唯一性,不然會定位到其他地方,或者無法定位。

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.通過partial linkText定位到“打哭伊藤!孫穎莎:過癮”,宏哥這里選擇“打哭”二字,點擊一下。

3.2代碼設計

3.3參考代碼

package lessons;

import java.util.concurrent.TimeUnit;

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

/**
 * @author 北京-宏哥
 *
 * 2021年7月30日
 */
public class FindElement_PartialLinkText {
    
    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.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
          
        driver.get("https://www.baidu.com");  
        
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        
        driver.findElement(By.partialLinkText("打哭")).click();
        
        //判斷打開頁面是不是奧運獎牌榜 最新排名,這里用url作為驗證
          assert driver.getCurrentUrl() == "https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=%E6%89%93%E5%93%AD%E4%BC%8A%E8%97%A4%21%E5%AD%99%E9%A2%96%E8%8E%8E%3A%E8%BF%87%E7%98%BE&rsv_idx=2&rsv_dl=fyb_n_homepage&hisfilter=1";
              
          System.out.println("斷言通過!");
        
        driver.close();
      
    }

}

3.4運行代碼

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

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

4.小結

1.link_text 和 partial_link_text區別:link_text 是超鏈接載體的精確匹配,而partial_link_text是對超鏈接載體的模糊匹配
2.使用時這個超鏈接載體必須是唯一的。
3.在網頁上可通過Ctrl+F來查找關鍵字查看鏈接載體是否唯一。
4.linkText也是遵循“匹配第一個”的原則,同一網頁多次出現的話找第一個。

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

5.拓展

因為partial 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":"partial link text","selector":"打哭過癮"}),從視頻中可以看到進入百度以后,就沒有進入打哭的頁面。

出現這種情況的原因是:partial link Text是超鏈接文本模糊匹配,雖然說是partial,但一定要連續的字才行,隨便從中間挑幾個字不連續那不行。英文也一樣,得是連續字母才行。你要是不信偏要以身試法,那就會報錯。


免責聲明!

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



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