使用Selenium WebDriver 查找 Web 元素
我们可以使用以下两个工具来识别网页中的网页元素:
- 开发者工具
- 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 路径。
Absolute and relative Xpath –
Absolute XPath: This XPath locates the web element from the root element to the required child node. In real-time automation scripts, we should not use absolute XPath.
Note: For dynamic applications such as an Ajax application, we cannot use absolute XPath.
Relative XPath: It is the customized XPath, which finds the elements by using tags, attributes or text.
这些定位器是存在于名为“by”的抽象类中的静态方法。有两种主要方法可以在网页上查找和修改 Web 元素 -
findElement() :我们使用这个方法来查找网页中的网页元素。它的返回类型是 web element 是一个接口。此方法根据定位器查找 Web 元素,如果此方法未能在页面上找到 Web 元素,则会给出 NoSuchElementException。此方法存在于 Searchcontext 接口中。
sendKeys() :我们使用此方法在网页的文本框字段内输入数据。它将一个字符序列(即“字符串”和枚举)作为参数。它存在于 Web 元素界面中。