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(超鏈接文本模糊匹配)。