📜  使用Selenium WebDriver 查找 Web 元素

📅  最后修改于: 2022-05-13 01:56:35.151000             🧑  作者: Mango

使用Selenium WebDriver 查找 Web 元素

我们可以使用以下两个工具来识别网页中的网页元素:

  1. 开发者工具
  2. FireBug 和 FirePath

开发者工具 -

右键单击网页。导航到检查元素以找到开发人员的工具。

注意:有些网站禁用了右键单击。例如。 IRCTC、银行网站等。要在这些网站上打开开发者工具,请单击“Fn+F12”。

开发人员的工具对用户不友好,我们不能为它们编写 X 路径和 CSS 选择器。

FireBug 和 FirePath –

FireBug 是仅适用于 Firefox 浏览器的插件。它用于识别网页上的网络元素。

Fire path 是 FireBug 的第三方工具,也是仅适用于 Firefox 浏览器的附加组件。通过使用 Fire 路径,我们可以识别 Web 元素,我们可以编写自定义的 X 路径和 CSS 选择器。我们还可以使用这个工具来评估编写的自定义 X 路径。默认情况下,Fire Path 会生成绝对 X 路径。

笔记:

  • 使用 FireBug 和 Fire Path 我们可以实现跨浏览器测试。
  • FireBug 和Fire Path 目前都不支持Firefox 浏览器版本quantum ie 57 或更高版本。

使用 FireBug 和 Fire Path 的步骤

i) 右键单击 web 元素。导航到“inspect in Fire Path”。
ii) 如果右键单击被禁用,则通过单击 FireBug 图标打开 Fire Path。

定位器:定位器用于根据 HTML 标记、属性和 HTML 文本定位 Web 元素。 Selenium WebDriver 中有 8 种类型的定位器:

  • id() :在网页中搜索网页元素时,此定位器具有最高优先级。它的值对于整个网页中的特定 Web 元素始终是唯一的,因此当您使用此定位器时,您不会得到多个匹配项。每当 HTML 代码中有 id 属性时,我们都会使用它。
  • name() :只要在 HTML 代码中有任何 web 元素的 name 属性,我们就使用这个定位器。
  • className() :只要 HTML 代码中有类属性,我们就使用这个定位器。
  • tagName() :只要有一个带有唯一 HTML 标签的 web 元素,我们就使用这个定位器。
  • linkText() :只要有一个链接与一个唯一的 HTML 文本相关联,我们就使用这个定位器。
  • partialLinkText() :每当网页中的链接带有与其相关的冗长文本时,我们通过使用链接中的部分 HTML 文本来使用此定位器。
  • cssSelector() :与 XPath 相比,cssSelector 是一个更快的定位器,并且使用更广泛。它比其他定位器更复杂,但最有效,因为在没有某些 html 标签的情况下,我们可以使用它来定位 web 元素。
  • xpath() :它是一个定位器,用于使用标签、属性和文本来定位 Web 元素。我们可以将 X 路径用于 HTML 文档和 XML 文档。有两种类型的 XPath,a。绝对 XPath,b。相对 X 路径。

这些定位器是存在于名为“by”的抽象类中的静态方法。有两种主要方法可以在网页上查找和修改 Web 元素 -

findElement() :我们使用这个方法来查找网页中的网页元素。它的返回类型是 web element 是一个接口。此方法根据定位器查找 Web 元素,如果此方法未能在页面上找到 Web 元素,则会给出 NoSuchElementException。此方法存在于 Searchcontext 接口中。

sendKeys() :我们使用此方法在网页的文本框字段内输入数据。它将一个字符序列(即“字符串”和枚举)作为参数。它存在于 Web 元素界面中。