在硒中查找具有链接文本和部分链接文本的元素
Selenium中CSS定位器是一个基本概念,每个旨在使用Selenium执行自动化测试的测试人员都应该意识到这一点。 在Selenium中充分使用CSS定位器可以帮助您以更高效,更彻底的方式执行测试。 我从7年以来一直从事自动化测试行业,并且我经常观察到测试人员在使用Selenium执行自动化测试时 ,往往会忘记每个CSS定位器的用途。 新生很难理解他们,经验丰富的测试人员在使用Selenium执行自动化测试时,经常会使用几个选择器来定位网页上的元素。
有时候,我看到经验丰富的自动化测试人员会花更长的时间查找元素,因为他们习惯于坚持自己喜欢的定位器。 这就是为什么我认为我会为Selenium中CSS定位器提供一个教程系列,以帮助萌芽的自动化测试人员提出这些定位器的战略实现。 对于我们这些经验丰富的人来说,这将是一个快速而又好的总结。
当我们使用Selenium执行自动化测试时,本文将介绍链接文本和部分链接文本的实际实现。 任何Web应用程序上的链接都可以帮助查找文本完全匹配或部分匹配的元素。 使用Selenium中的链接文本和部分链接文本,我们将能够找到这两个匹配项。 这是我关于Selenium中CSS Locator的系列教程的最后一篇文章。
您可以查看有关Selenium中不同CSS定位器的其他文章,这些文章可通过多种方式帮助您定位元素:
- Selenium中的ID定位器
- 硒中的名称定位器
- Selenium中的类名称定位器
- Selenium中的标记名定位器
- Selenium中CSS选择器
- Selenium中的XPath
如果您是Selenium的高级或中级从业人员,那么您可以喜欢上面提到的专门文章。 并获得我们的完整指南,以帮助您说明Selenium中CSS定位器的实际演示。
查看Selenium WebDriver中每个CSS定位器的完整指南,并附带示例
如此说来,让我们找出如何利用Selenium中的链接文本和部分链接文本来定位网页上的元素。
在Selenium中使用链接文本查找元素
为了使用Selenium中的链接文本访问链接,使用下面引用的代码:
driver.findElement(By.linkText("this is a link text"));
注意:在存在多个具有相似文本的链接的情况下,它将自动选择第一个。
让我们参考下面的代码片段以了解用例。 在这种情况下,我们以Airbnb为例,通过链接匹配单击果阿的任何一次停留。
![](/assets/blank.gif)
带有链接文本的div元素的引用屏幕快照:
![](/assets/blank.gif)
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; public class LinkText { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty( "webdriver.chrome.driver" , ".\\ChromeDriver\\chromedriver.exe" ); WebDriver driver= new ChromeDriver(); driver.manage().timeouts().implicitlyWait( 20 , TimeUnit.SECONDS); driver.manage().window().maximize(); //Opening the air bnb Goa homestays page driver.get( " https://www.airbnb.co.in/s/Goa/all " ); //locating an element via link text in Selenium now, and clicking on that stay driver.findElement(By.linkText( "Standard One Bedroom Suite with Pool & Jacuzzi" )).click(); driver.quit(); } }
我们也可以使用Selenium中的部分链接文本来定位同一元素。 让我们检查一下!
在硒中使用部分链接文本定位元素
Selenium中的部分链接文本是通过链接定位元素的另一种方法。 从Selenium中的链接文本到部分链接文本的唯一区别是, 它不会查看字符串值的完全匹配,而是会进行部分匹配 。 因此,如果您要查找具有更大文本长度的链接,则可以避免只使用部分链接文本,而不必使用Selenium中的整个链接文本。
通过部分链接文本定位元素的语法。
driver.findElement(By.partialLinkText ("link text"));
参考上述情况,以下是与Airbnb相同停留时间的部分链接文本的代码段:
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; public class PartialLinkText { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty( "webdriver.chrome.driver" , ".\\ChromeDriver\\chromedriver.exe" ); WebDriver driver= new ChromeDriver(); driver.manage().timeouts().implicitlyWait( 20 , TimeUnit.SECONDS); driver.manage().window().maximize(); //Opening the air bnb Goa homestays page driver.get( " https://www.airbnb.co.in/s/Goa/all " ); //locating an element via link text now and clicking on that stay driver.findElement(By.partialLinkText( "Pool & Jacuzzi" )).click(); driver.quit(); } }
有多个匹配结果时如何选择正确的链接文本?
在Selenium中使用部分链接文本时,要记住的唯一一点是要使部分链接文本最终与页面上的多个链接文本匹配。 在这种情况下,请确保您要单击所需的。
让我们考虑另一种情况,当我们使用Selenium执行自动化测试时,您最终会匹配多个链接文本,并希望仅针对指定的链接文本。 对于果阿岛的相同寄宿家庭,我试图在其中将带有部分文本的元素定位为“池”。 因此,策略是找出许多有游泳池的住所,然后单击所需的住所,然后发布。 以下参考代码段表示如何使用Selenium中的部分链接文本从多个匹配结果中选择正确的目标。
import java.util.List; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; public class LinkText { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty( "webdriver.chrome.driver" , ".\\ChromeDriver\\chromedriver.exe" ); WebDriver driver= new ChromeDriver(); driver.manage().timeouts().implicitlyWait( 20 , TimeUnit.SECONDS); driver.manage().window().maximize(); //Opening the air bnb Goa homestays page driver.get( " https://www.airbnb.co.in/s/Goa/all " ); //locating an element via link text now and clicking on that stay List<WebElement> poolNumber=driver.findElements(By.partialLinkText( List<WebElement> poolNumber=driver.findElements(By.partialLinkText( "Pool" )); //find the number of links with the text as pool int numberOfStaysWithPool= poolNumber.size(); System.out.println(numberOfStaysWithPool); for ( int k= 0 ; k<numberOfStaysWithPool; k++) { //printing all those links System.out.println(poolNumber.get(k).getText()); } //select the luxury three bedroom apartment link poolNumber.get( 2 ).click(); poolNumber.get( ).click(); driver.quit(); } }
![](/assets/blank.gif)
在上面的代码片段中,我使用了findElements,因为我应该接收多个带有部分文本的Web元素作为“池”。 现在,使用索引,我已经导航到想要单击的链接之一。 很简单,不是吗?
注意:链接文本和部分链接文本对于Selenium中CSS定位器都是区分大小写的。
例如,假定主页上存在链接“ Register ”,而主页的页脚中存在类似的链接“ REGISTER ”。 在这种情况下,如果要使用链接文本“ REGISTER ”进行查找,它将自动在页脚而不是另一个中选择链接。
![](/assets/blank.gif)
Selenium中的链接文本和部分链接文本定位器仅适用于给定Web应用程序的链接。 如果要查找链接以外的元素,则不能在Selenium中使用链接文本或部分链接文本定位器。 如果您正在处理应用程序中的链接,那么这也许是最好的定位器。 测试愉快!
![](/assets/blank.gif)
翻译自: https://www.javacodegeeks.com/2019/06/find-elements-link-text-partial-link-text-selenium.html
在硒中查找具有链接文本和部分链接文本的元素相关推荐
- Microsoft Excel 教程:如何在 Excel 中查找或替换工作表上的文本和数字?
欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中查找或替换工作表上的文本和数字. 在 Excel 中使用「查找和替 ...
- 【问题描述】在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素。【输入形式】循环输入若干个整数,以字母结束输入,建立带头结点的单链表。【输出形式】输出最
[问题描述] 在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素. [输入形式] 循环输入若干个整数,以字母结束输入,建立带头结点的单链表. [输出形式] 输出最大值与最 ...
- 在带头结点单链表中查找最大值,将其与最后一个元素交换(交换值)
[问题描述] 在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素. [输入形式] 循环输入若干个整数,以字母结束输入,建立带头结点的单链表. [输出形式] 输出最大值与最 ...
- selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素
selenium查找文本 Selenium中CSS定位器是一个基本概念,每个旨在使用Selenium执行自动化测试的测试人员都应该意识到这一点. 在Selenium中充分使用CSS定位器可以帮助您以更 ...
- html实现文本的查找与替换,在 InDesign 中查找并替换文本
在对文档进行修订时,"查找并替换"操作将很有用.您可以全局查找并替换文本.对象.字体.字形和颜色. "查找/更改"对话框 A. 查找/更改选项卡 B. &quo ...
- 文本编辑器中查找对话框及功能实现
文章目录 1 查找对话框界面实现 2 查找对话框的功能实现 1 查找对话框界面实现 查找对话框需求分析: 可复用软件部分. 查找文本框中的指定字符串. 能够指定查找方向. 支持大小写敏感查找. 附加需 ...
- 在html中怎么制作友情链接,如何制作一个网页链接,用描文本、友情链接交易方式教你如何制作?...
如何制作一个网页链接,用描文本.友情链接交易方式教你如何制作?作为seo优化人员如何运用外界链接开展百度搜索引擎提升?下面和小编一起看看! 1.锚点链接链接应该是有关的 优先,百度搜索引擎提升锚点链接 ...
- JS实现文本中查找并替换字符
JS实现文本中查找并替换字符 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html> <head><style type=" ...
- 微信小程序 查找兄弟节点_使用C ++程序在链接列表中查找节点
微信小程序 查找兄弟节点 Given a linked list and an integer N, you need to find and return index where N is pres ...
最新文章
- easyui英文提示变中文
- 程序员离职带走源码竟获利800万,网友:我一般都是删库跑路
- ECSHOP 支付宝发货确认接口,记录支付宝返回的交易号
- TCP传输过程中丢包问题
- 谷歌浏览器怎么设置点击书签 谷歌浏览器如何设置点击书签
- tp5的验证码点击刷新看不清 换一张
- python宽度优先搜索算法并输出路径
- 一个教务系统多少钱_ERP系统多少钱
- 大数据 | 从阿里核心场景看实时数仓的发展趋势
- c语言从入门到精通pdf 百度云,c语言从入门到精通PDF
- Python-opencv 图片颜色域的识别选取
- 【数据结构与算法-动态规划系列经典例题汇总】
- 黑马程序员——java 泛型
- [USACO10HOL]赶小猪
- 计算机技术对身体有益,对眼睛有益的7种食物,常看电脑和手机的你一定要多吃!...
- 【代码审计】iCMS_v7.0.7 apps.admincp.php页面存在SQL注入漏洞分析
- 计算机白板培训报道,巧用白板,增色课堂——南宁市五象教育集团小学部开展希沃白板五实操培训活动...
- android4.0 x86,PC专用Android 4.0 x86系统上手体验
- 一个基于.Net Core+Vue+Element Ui开发的OA系统
- python 12306登录_Python 实现12306登录功能实例代码
热门文章
- 【Splay】波动值之和(金牌导航 Splay-1)
- 【数学期望】【LCA】【树形DP】树
- codeforces F.F. Teodor is not a liar! 最长不降子序列
- 2017西安交大ACM小学期 文本查找[AC自动机]
- mybatis源码阅读(四):mapper(dao)实例化
- MySQL date_format()函数
- Spring 基于注解的配置
- 在Linux系统上部署java web项目
- FormData的使用
- Failed to execute