迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

使用 JavaScript 通过 XPath 获取元素

作者:迹忆客 最近更新:2024/03/21 浏览次数:

本文将讨论如何在 Selenium WebDriver 中使用 JavaScript 通过 XPath 获取元素。


什么是 Selenium

Selenium 是一个自动化测试框架,用于在 Google Chrome、Mozilla Firefox、Safari 等多种浏览器中测试网站应用程序。

JavaScript、Java、Python 和 C# 等多种编程语言可以在 Selenium 中创建测试脚本。如果你使用的是 Selenium 提供的工具,则可以称为 selenium 测试。

Selenium 不是一个单一的工具,而是由多个可用于不同类型测试的软件组成,例如:

  • Selenium Grid
  • Selenium WebDriver
  • Selenium 远程控制 (RC)
  • Selenium 集成开发环境(IDE)。

什么是 Selenium-WebDriver

Selenium-Webdriver 用于通过使用各种编程语言(如 JavaScript、Java、Python、C# 等)在多个浏览器上执行测试脚本来执行测试。

Selenium-Webdriver 用于确保 Web 应用程序在生产环境中正常工作。它可以为你创建一个虚拟环境来测试应用程序。

selenium web 驱动程序有四个主要部分。

  • 浏览器
  • 浏览器驱动程序
  • Selenium 客户端库
  • JSON 有线协议

Selenium 中的 XPath 是什么

XPath 用于遍历网页的 XML 和 HTML 结构。

如果不使用 id、class 等 CSS 选择器,XPath 可以在网页上找到元素。XPath 可用于查找静态和动态元素(其属性可能因某些事件而改变)。

Selenium 中有两个 XPath。

  • 绝对路径
  • 相对路径

绝对路径

你可以在绝对路径中指定要定位的元素,从根标签 HTML 标签开始。然后,你可以通过定位子元素并使用正斜杠附加它们来向前移动。

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Absoulte Path</title>
  </head>
  <body>
    <form id="login-form">
      <input name="name" type="text" />
      <input name="email" type="text" />
      <input name="password" type="password" />
      <button>Login</button>
    </form>
  </body>
</html>

看看上面的源代码;我们需要给出指向第一个输入的路径。

html/body/form/input[1]

这将首先访问 HTML 元素、body 元素,然后是 form,然后再移动到表单内的第三个输入元素。

相对路径

相对路径与绝对路径的不同之处在于它可以直接定位 HTML 元素。因此,在上面的源代码中,我们将编写双正斜杠(表示它是相对路径),然后从那里遍历,类似于在绝对路径中的方式。

///form/input[1]

在 Selenium WebDriver 中使用 JavaScript 通过 XPath 获取元素

document.evaluate 可以通过向其传递 XPath 表达式来获得 XPath 结果。

let HeadingElements = document.evaluate(
    '/html/body//p', document, null, XPathResult.ANY_TYPE, null);
let NextHeading = HeadingElements.iterateNext();
let HeadingTexts = '';
while (NextHeading) {
  HeadingTexts += NextHeading.textContent + '\n';
  NextHeading = NextHeading.iterateNext();
}
console.log(HeadingTexts);

上面的源代码将针对每个目标段落元素(因为提供了 XPath)。它将取出每个段落的文本内容,将其附加到变量并注销结果。

上一篇:使用 JavaScript 替换新行

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 JavaScript 获取当前 URL

发布时间:2024/03/21 浏览次数:197 分类:JavaScript

在本教程中,我们将讨论如何使用四种不同的方法在 JavaScript 中获取 URL。这些方法将使用 window.location.href、document.location.href、document.URL 和 document.baseURI。

禁用 JavaScript 中的链接

发布时间:2024/03/21 浏览次数:82 分类:JavaScript

通常,锚标记的 href 可以有一个 # 来表示它是未定义的。此外,我们可以使用其他方式来设置 href 未定义,但预定义的目标链接可以通过 eventListener 手动禁用,使用 name 属性,也可以通

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便