《手把手教你》系列技巧篇(十三)-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,但一定要连续的字才行,随便从中间挑几个字不连续那不行。英文也一样,得是连续字母才行。你要是不信偏要以身试法,那就会报错。

 每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值