Puppeteer - 处理下拉菜单


我们可以处理 UI 中的下拉菜单,同时使用 Puppeteer 进行自动化测试。静态下拉列表在 html 代码中以标记名作为 select 进行标识,其选项以标记名作为选项。

命令已成功

处理下拉菜单的方法

使用静态下拉菜单的一些方法 -

选择()

此方法用于从下拉列表中选择一个选项。要选择的选项的值作为参数传递给此方法。

句法

语法如下 -

const page = await browser.newPage()
   const f = await page.$('[name="selType"]')
await f.select("subject")

我们还可以从多选下拉列表中选择多个选项。

句法

语法如下 -

await f.select("subject", "name")

要从下拉列表中获取选择值,我们必须使用 getProperty 方法并将值作为参数传递给该字段。

const v = await (await n.getProperty("value")).jsonValue()
console.log(v)

类型()

此方法用于从下拉列表中选择一个选项。要选择的选项的值作为参数传递给此方法。

句法

语法如下 -

const page = await browser.newPage()
   const f = await page.$('[name="selType"]')
await f.type("subject")

首先,请按照《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 dropDownHandle(){
   //launch browser in headless mode
   const browser = await pt.launch()
   //browser new page
   const page = await browser.newPage()
   //launch URL
   await page.goto('https://www.tutorialspoint.com/tutor_connect/index.php')
   //identify dropdown then select an option by value
   const f = await page.$('[name="selType"]')
   await f.select("subject")
   //wait for sometime
   await page.waitForTimeout(4000)
   //get value selected
   const v = await (await f.getProperty("value")).jsonValue()
   console.log(v)
}
dropDownHandle()

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

node <filename>

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

node testcase1.j
终端命令

命令成功执行后,在下拉列表中选择的选项值 - 主题将打印在控制台中。