首页 > 图灵资讯 > 技术篇>正文

在Selenium WebDriver中通过文本查找元素

2023-05-09 10:10:03

  在Selenium文本搜索元素是利用其文本属性来定位网络元素。当基本元素识别属性(如ID或Class)动态且难以定位网络元素时,大多数都会使用文本值。

  有时,开发人员倾向于将相同的ID或相同的Class相似Web元素组合在一起。例如,如果你有一个标签为Button的元素,它有一个动态ID和Class名称,其中ID来自 "ID-3465-text1 "变为 "ID-4434-texte2,而Class的名字在每次新会话中都来自 "ID-Class-text45 "变为 "ID-Class-text73”。

  来源

  在这种情况下,使用ID或Class属性来定位网络元素变得非常困难。此时,Text属性正在执行Selenium自动化测试它将发挥作用。

  文本值可以完全匹配或部分匹配来定位元素。在这篇文章中,关于如何在Seleniumm中定位元素。 通过文本在WebDriver中搜索元素文章您将学习如何使用Text属性来找到任何元素。

  让我们开始吧!

  Selenium中的搜索元素是什么?

  当你开始写你的Selenium自动化脚本时,与网络元素的互动成为你的第一步和非常重要的一步,因为你在测试脚本中玩Webelements。现在,只有当你以正确的方式识别这些网络元素时,才能与它们互动。

  搜索Selenium中的元素是帮助您识别网络元素的命令。搜索元素的方法有很多,可以使用Selenium中的Web定位器(如ID)、Name、Class Name等。)在网页上唯一识别一个Web元素。以下是Selenium中搜索元素的语法。

  语法是搜索元素

  WebElement elementName= driver.findElement(By.("LocatorValue"));

  如上述语法所示,该命令被接受 "By作为参数的对象,返回Webelement对象。By“接受定位器策略是定位器或查询对象。定位器策略可以有以下值。

  ·ID

  ·名称

  ·类别名称

  ·标签名称

  ·链接文本

  ·部分链接文本

  ·XPath

  ·CSS选择器

  通过文本搜索Selenium中的元素是什么?

  在最后一节中,我们看到了Selenium中的搜索元素及其语法。现在,你必须想知道如何在Selenium 通过文本在WebDriver中搜索元素。

  答案是使用Selenium中的XPath!

  想知道怎么做吗?让我们看看下面的部分。

  为了使用文本,您需要使用XPath作为您的定位策略,并在定位值中使用元素的文本属性。

  XPath在Selenium中的基本格式如下。XPath = //tagname[@Attribute=’Value’]

  然而,在我们开始之前,有必要了解Selenium的两种内置方法,它们最终将用于findelement。

  1.text() - 这是一种内置的Selenium方法,与XPath一起使用,以便根据一个元素的确切文本值进行定位。在findelement中使用text的语法是。 WebElement ele = driver.findElement(By.xpath(“//[text()=’text value’]”))

  2.contains()- 类似于text()方法,contains()是另一种与XPath一起使用的内置方法。然而,当我们想根据一些文本匹配来编写定位器时,这是使用的。在 findElement 中使用 text() 和 contains() 的语法是。 WebElement ele=driver.findElement(By.xpath(“//[contains(text(),’textvalue")"))"

  现在让我们详细了解一下这些。

  通过文本搜索元素在Selenium中用于完整的文本匹配

  现在,你已经看到了text()语法在完全文本匹配的情况下使用。在本节中,让我们通过一个例子来看看如何通过文本在selenium中搜索元素。

  我们将使用Lambdatest提供的Seleniumm Playground来理解这一点。Lambdatest是一个基于云的跨跨度浏览器支持Selenium网格的测试平台,为您使用本地机器自动化测试每一个障碍都提供了解决方案。像Lambdatest这样的测试自动化平台提供了一个由3000多个在线浏览器组成的Selenium网格,让您可以毫不费力地进行Selenium自动化测试。

上一篇 试题 基础练习 序列求和
下一篇 Java8新特性—Optional类

文章素材均来源于网络,如有侵权,请联系管理员删除。