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,但一定要连续的字才行,随便从中间挑几个字不连续那不行。英文也一样,得是连续字母才行。你要是不信偏要以身试法,那就会报错。

《手把手教你》系列技巧篇(十三)-java+ selenium自动化测试-元素定位大法之By partial link text(详细教程)的更多相关文章

  1. 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

  2. 《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

  3. 《手把手教你》系列技巧篇(十七)-java+ selenium自动化测试-元素定位大法之By css上卷(详细教程)

    1.简介 CSS定位方式和xpath定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比xpath定位速度快,且比CSS稳定的特性.下面详细介绍CSS定位方式的使用方法.xpat ...

  4. 《手把手教你》系列技巧篇(十九)-java+ selenium自动化测试-元素定位大法之By css下卷(详细教程)

    1.简介 按计划今天宏哥继续讲解css的定位元素的方法.但是今天最后一种宏哥介绍给大家,了解就可以了,因为实际中很少用. 2.常用定位方法(8种) (1)id(2)name(3)class name( ...

  5. 《手把手教你》系列技巧篇(十一)-java+ selenium自动化测试-元素定位大法之By tag name(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...

  6. 《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...

  7. 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

  8. 《手把手教你》系列技巧篇(十八)-java+ selenium自动化测试-元素定位大法之By css中卷(详细教程)

    1.简介 按计划今天宏哥继续讲解倚天剑-css的定位元素的方法:ID属性值定位.其他属性值定位和使用属性值的一部分定位(这个类似xpath的模糊定位). 2.常用定位方法(8种) (1)id(2)na ...

  9. 《手把手教你》系列技巧篇(九)-java+ selenium自动化测试-元素定位大法之By name(详细教程)

    1.简介 上一篇宏哥已经介绍了通过id来定位元素,今天继续介绍其他剩下的七种定位方法中的通过name来定位元素.本文来介绍Webdriver中元素定位方法之By name,顾名思义,就是我们想要定位的 ...

随机推荐

  1. 【题解】10-19秀秀的森林(forest)

    我恨秀秀倍增LCA+离线 (时光倒流) 题目 秀秀有一棵带n个顶点的树T,每个节点有一个点权ai-.有一天,她想拥有两棵树,于是她从T中删去了一条边.第二天,她认为三棵树或许会更好一些.因此,她又从她 ...

  2. Java程序安装失败

      检查文件路径,应该不含中文汉字,空格以及特殊字符.应将jdk的安装目录设置为纯英文路径. 是否有多个安装程序同时运行,若多点安装程序则会安装失败,打开任务管理器,查看是否有多个安装程序运行 注册表 ...

  3. 用python+pyqt5语言编写的扫雷小游戏软件

    github源码地址:https://github.com/richenyunqi/Mine-game ,撒娇打滚求star哦~~ღ( ´・ᴗ・` )比心 扫雷主界面模块 整个扫雷界面使用大量的白色方 ...

  4. UV贴图类型

      凹凸贴图Bump Map.法线贴图Normal Map.高度贴图Height map.漫反射贴图Diffuse Map.高光贴图Specular Map.AO贴图Ambient Occlusion ...

  5. 9、ssh服务详解及优化

    ssh是"secure shell protocol"的简写,在进行数据传输之前,ssh先对练级数据包通过加密技术进行加密处理, 加密后再进行数据的传输,从而确保了数据的安全: s ...

  6. Gym 100008E Harmonious Matrices 高斯消元

    POJ 1222 高斯消元更稳 看这个就懂了 #include <bits/stdc++.h> using namespace std; const int maxn = 2000; in ...

  7. 通过CRM客户系统改变销售工作模式

    CRM客户管理软件对于企业来说,能够优化销售流程.维护客户关系.销售流程管理等.但是很多销售人员认为企业购买CRM软件,是用来监视他们的武器,自然会受到销售团队的抵触.所以经常会出现管理者辛苦的选型, ...

  8. 学堂在线《Java程序设计(2021春)》系列笔记——前言

    写在前面 目录 写在前面 这个系列是什么 为什么要做这篇博客 我是谁(其实不重要) 其他 这个系列是什么 这是关于学堂在线<Java程序设计(2021春)>(清华大学-郑莉教授)的个人同步 ...

  9. php自动识别背景并且把它改为白色

    此源码有个阈值可以自己调节,精确度等自测 <?php /*$Colorimg = new Colorimg(); $image=$Colorimg->IMGaction("G:/ ...

  10. 确保 PHP 应用程序的安全 -- 不能违反的四条安全规则(转)

      规则 1:绝不要信任外部数据或输入 关于 Web 应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在 PHP 代码中直接输入的任何数 ...