首页 > 解决方案 > 如何点击需要

与木偶师?

问题描述

这是我的代码。我正在使用 Puppeteer 进行自动测试。

<div class="Menu">
<label class="Kit__caption Header__username">Logged in as: BAF Agent</label>
<div class="menu-item">Help / FAQ</div>
<div class="menu-item">Submit Feedback</div>
<div class="menu-item">Sign Out</div>
</div>

如何选择带有“退出”文本的最后一个 div?

标签: javascriptnode.jsmocha.jspuppeteer

解决方案


你可以试试这个选择器或这个 xPath:

'use strict';

const puppeteer = require('puppeteer');

(async function main() {
  try {
    const browser = await puppeteer.launch();
    const [page] = await browser.pages();

    const html = `
      <!doctype html>
      <html>
        <head><meta charset='UTF-8'><title>Test</title></head>
        <body>
          <div class="Menu">
            <label class="Kit__caption Header__username">Logged in as: BAF Agent</label>
            <div class="menu-item">Help / FAQ</div>
            <div class="menu-item">Submit Feedback</div>
            <div class="menu-item">Sign Out</div>
          </div>
        </body>
      </html>`;

    await page.goto(`data:text/html,${html}`);

    let div = await page.$('div.Menu > div.menu-item:last-of-type');
    console.log(await page.evaluate(element => element.innerText, div));

    [div] = await page.$x('.//div[@class="Menu"]/div[@class="menu-item" and text()="Sign Out"]');
    console.log(await page.evaluate(element => element.innerText, div));

    await browser.close();
  } catch (err) {
    console.error(err);
  }
})();

推荐阅读