?本文按计划就要开始介绍link text,顾名思义是通过链接定位的(官方说法:超链接文本定位)。什么是linktext呢,就是我们在任何一个网页上都可以看到有一个或者多个链接,上面有一个文字描述,点击这个文字,就可以跳转到其他页面。这个就是linkText。
(1)id
(2)name
(3)class name
(4)tag name
(5)link text(今天讲解)
(6)partial link text
(7)xpath
(8)css selector
?恰好赶上东京奥运会,那宏哥就以百度首页的“奥运奖牌榜 最新排名”为例,给小伙伴或童鞋们实践一下。点击首页那个“奥运奖牌榜 最新排名”链接,观察是否进入到“奥运奖牌榜 最新排名”页面。这里的例子比较简单,意在说明用法。
1.访问度娘首页。
2.通过linkText定位到“奥运奖牌榜 最新排名”按钮,点击一下。
?
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();
}
}
1.运行代码,右键Run AS->java Application,控制台输出,如下图所示:
?
2.运行代码后电脑端的浏览器的动作,如下小视频所示:
好了,到此关于linkText定位(精准匹配)也介绍完了,感谢你耐心的阅读。
linkText也是遵循“匹配第一个”的原则,同一网页多次出现的话找第一个。
因为linkText定位(精准匹配),因为宏哥为了验证猜测,就将“奥运奖牌榜 最新排名”后边的最新排名去掉了,大家猜猜运行代码还能定位到元素进行点击跳转新页面吗,答案:就是不能。
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(超链接文本模糊匹配)。
?每天学习一点,今后必成大神-
往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):
Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试
Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南
Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架
Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架
Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程