javascript - 如何点击需要与木偶师?
问题描述
这是我的代码。我正在使用 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?
解决方案
你可以试试这个选择器或这个 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);
}
})();
推荐阅读
- mysql - 升级到 MySQL 8 后,JSON 大查询失败
- python - 何时以及为何将 Lambda 函数映射到列表
- flutter - 将文本和图像从 Flutter 应用程序叠加到 YouTube 直播
- php - 页面刷新时Php Session续约
- amazon-web-services - 安装 Boto 时 Docker “ImportError: No module named boto”
- javascript - 如何检查赛普拉斯中最新响应的标题?
- mysql - SQL查询以按输出值获取计数和分组
- java - 从 Java 访问时,Kotlin 对象是私有的
- python - 删除熊猫数据框标头中的所有空格
- git - 如何在 ZSH 中获取当前的 git 分支名称?