Puppeteer - 属性选择器


导航到网页后,我们必须与页面上可用的网络元素进行交互,例如单击链接/按钮、在编辑框中输入文本等,以完成我们的自动化测试用例。

为此,我们的首要工作是识别元素。如果某个属性及其值在标签中仅使用一次,我们可以将其用作属性选择器。如果存在多个具有相同属性值的元素,则仅识别页面上第一个匹配的元素。

句法

属性选择器的语法如下 -

const f = await page.$("ul[name='val']")

这里,ul 是标记名,val 是为 name 属性设置的值。

在下图中,让我们获取突出显示元素的文本 - About Tutorialspoint -

李标题

上述元素的属性选择器表达式应为 li[class='heading']。

首先,请按照《Puppeteer 基本测试》一章中的步骤 1 至 2 进行操作,如下所示 -

步骤 1 - 在创建 node_modules 文件夹的目录中创建一个新文件(Puppeteer 和 Puppeteer 核心的安装位置)。

Puppeteer 安装的详细信息将在 Puppeteer 安装章节中讨论。

右键单击创建 node_modules 文件夹的文件夹,然后单击“新建文件”按钮。

节点模块

步骤 2 - 输入文件名,例如 testcase1.js。

测试用例1.JS

步骤 3 - 在创建的 testcase1.js 文件中添加以下代码。

//Puppeteer library
const pt= require('puppeteer')
async function selectorAttribute(){
   //launch browser in headed mode
   const browser = await pt.launch()
   //browser new page
   const page = await browser.newPage()
   //launch URL
   await page.goto('https://www.tutorialspoint.com/about/about_careers.htm')
   //identify element with attribute selector
   const n = await page.$("li[class='heading']")
   //obtain text
   const t = await (await n.getProperty('textContent')).jsonValue()
   console.log("Obtained text is: " + t)
}
selectorAttribute()

步骤 4 - 使用下面给出的命令执行代码 -

node <filename>

因此,在我们的示例中,我们将运行以下命令 -

node testcase1.js
关于

成功执行命令后,元素的文本 - About Tutorialspoint 将打印在控制台中。