selenium查找文本

Selenium中CSS定位器是一个基本概念,每个旨在使用Selenium执行自动化测试的测试人员都应该意识到这一点。 在Selenium中充分使用CSS定位器可以帮助您以更高效,更彻底的方式执行测试。 我从7年以来一直从事自动化测试行业,而且我经常观察到测试人员在使用Selenium执行自动化测试时 ,往往会忘记每个CSS定位器的用途。 新生很难理解他们,经验丰富的测试人员经常会使用几个选择器在使用Selenium执行自动化测试时在网页上定位元素。

有时候,我看到经验丰富的自动化测试人员会花更长的时间查找元素,因为他们习惯于坚持自己喜欢的定位器。 这就是为什么我认为我会为Selenium中CSS定位器提供一个教程系列,以帮助萌芽的自动化测试人员提出这些定位器的战略实现。 对于我们这些经验丰富的人来说,这将是一个快速而又好的总结。

当我们使用Selenium执行自动化测试时,本文将介绍链接文本和部分链接文本的实际实现。 任何Web应用程序上的链接都可以帮助查找文本完全匹配或部分匹配的元素。 使用Selenium中的链接文本和部分链接文本,我们将能够找到这两个匹配项。 这是我关于Selenium中CSS Locator的系列教程的最后一篇文章。

您可以查看有关Selenium中不同CSS定位器的其他文章,这些文章可通过多种方式帮助您定位元素:

  • Selenium中的ID定位器
  • Selenium中的名称定位器
  • 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为例,通过链接匹配单击果阿的任何一次停留。


带有链接文本的div元素的引用屏幕快照:


 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中的链接文本到部分链接文本的唯一区别是, 它不会查看字符串值的完全匹配,而是会进行部分匹配 。 因此,如果您要查找具有更大文本长度的链接,则可以避免只使用部分链接文本,而不必使用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(); }   } 

在上面的代码片段中,我使用了findElements,因为我应该接收多个带有部分文本的Web元素作为“池”。 现在,使用索引,我已经导航到想要单击的链接之一。 很简单,不是吗?

注意:链接文本和部分链接文本对于Selenium中CSS定位器都是区分大小写的。

例如,假设一个链接“ 注册 ”存在一个主页上的类似链接“ 注册 ”是出现在首页上的页脚。 在这种情况下,如果要使用链接文本“ REGISTER ”进行查找,它将自动在页脚而不是另一个中选择链接。


Selenium中的链接文本和部分链接文本定位器仅适用于给定Web应用程序的链接。 如果要查找链接以外的元素,则不能在Selenium中使用链接文本或部分链接文本定位器。 如果您正在处理应用程序中的链接,那么这也许是最好的定位器。 测试愉快!


翻译自: https://www.javacodegeeks.com/2019/06/find-elements-link-text-partial-link-text-selenium.html

selenium查找文本

selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素相关推荐

  1. c++获取数组长度查找算法_在C ++中查找数组长度

    c++获取数组长度查找算法 介绍 (Introduction) In this article, we are going to learn about the various ways follow ...

  2. python从键盘输入一个列表计算输出元素的平均值_python列表查找值_在Python中查找列表平均值的5种方法...

    python列表查找值 Hi Folks! In this article, we will have a look at the various ways to find the average o ...

  3. java 查找素数_在Java中查找和检查素数

    java 查找素数 什么是质数? (What is a Prime Number?) A prime number is a natural number greater than 1 that is ...

  4. selenium抓取_使用Selenium的网络抓取电子商务网站

    selenium抓取 In this article we will go through a web scraping process of an E-Commerce website. I hav ...

  5. Python 列表查找,如何在列表中查找项目或者元素索引【翻译】

    Python 列表查找,如何在列表中查找项目或者元素索引 在本文中,你将学习如何在Python中查找列表中包含元素的索引. 有几种方法可以实现这一点,在本文中,你将学习三种不同的方式用于查找列表元素的 ...

  6. python字符串之查找与替换_在Python中查找和替换文本

    最简单的查找替换 在Python中查找和替换非常简单,如果当前对象是一个字符串str时,你可以使用该类型提供的find()或者index()方法查找指定的字符,如果能找到则会返回字符第一次出现的索引, ...

  7. html实现文本的查找与替换,在 InDesign 中查找并替换文本

    在对文档进行修订时,"查找并替换"操作将很有用.您可以全局查找并替换文本.对象.字体.字形和颜色. "查找/更改"对话框 A. 查找/更改选项卡 B. &quo ...

  8. excel 替换 换行符_在Excel中查找和替换换行符

    excel 替换 换行符 When you want to create a line break (line feed) in a cell, you press Alt + Enter, to s ...

  9. java 匹配最后一次出现的字符_在Java中查找字符串中字符的最后一次出现

    使用该lastIndexOf()方法在Java中查找字符串中字符的最后一次出现. 假设以下是我们的字符串.String myStr = "Amit Diwan"; 在上面的字符串中 ...

最新文章

  1. EXSI 连接硬件USB pass-through
  2. JavaScript开发
  3. java-web的mybatis的学习
  4. Socket的send函数在执行时报EAGAIN的错误
  5. vscode使用相关配置
  6. servlet,listener,filter,interceptor的关系
  7. Python_命名空间和作用域_25
  8. [例程]string.trim().length()的用法
  9. SoapUI接口测试——添加断言(检查点)——Assertion
  10. shell 004 __小斌文档 |数组+函数
  11. 设计模式(五):利用原型模式复制几个葫芦娃
  12. 增长模型拆解:分享有礼裂变玩法的底层逻辑与细节设计
  13. Ubuntu 显卡风扇调节问题 Unable to locate/open X configuration file. No package ‘xorg-server‘ found
  14. 如何在Linux系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程
  15. 缺陷管理工具bugfree快速安装配置
  16. Newcoder Wannafly13 B Jxy军训(费马小定理、分数在模意义下的值)
  17. Oracle EBS教学视频
  18. java插入数据库字段过长,【mybatis插入过长数据发生错误_mybatis】 | IT修真院·坑乎...
  19. 国贸、货代常用词汇(zt)
  20. 青岛外贸出口企业邮箱域名注册,做外贸企业邮箱重要吗?

热门文章

  1. 【周末狂欢赛7】【NOIP模拟赛】七夕祭,齿轮(dfs),天才黑客
  2. AT4378-[AGC027D]ModuloMatrix【构造】
  3. P2801-教主的魔法【分块,二分】
  4. jzoj3854-分组【树状数组,线段树】
  5. P3807-[模板]卢卡斯定理
  6. jzoj4252-QYQ的图【dfs】
  7. 2021“MINIEYE杯”中国大学生算法设计超级联赛(2)I love max and multiply(转化)
  8. UVALive7670 Asa's Chess Problem,上下界费用流,另类解法
  9. codeforces F.F. Teodor is not a liar! 最长不降子序列
  10. 动态规划训练20 [Treats for the Cows POJ - 3186 ]