[英]Puppeteer - best standard practices
在木偶戏中进行常规操作的最佳(或标准)方法是什么?
考虑一下:
<div class="C1">
<img alt="Bla Bla" class="C2" scrset="lots of stuff here" scr="THIS_IS_WHAT_I_WANT">
我要访问src文本。 最好的方法是什么?
或我在网页上有此情况的另一种情况:
<a class="D1 D2 D3" role="button" </a>
我想检查像上述按钮这样的元素的存在(和不存在)。
您的第一个示例(获取src文本):
const puppeteer = require('puppeteer') async function run() { const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto(`insertYourURLhere.com`, { timeout: 0, waitUntil: ['domcontentloaded'] }) // getting a handle on the div first const outerDiv = await page.$('div.C1') // proceeding from the selected div const scrAttribut = await outerDiv.$eval('img.C2', el => el.getAttribute('scr')) console.log(scrAttribut) browser.close() } run()
您的第二个示例(检查元素的存在):
您对外部div使用与上述相同的方法来查找按钮:
page.$(selector)
然后检查返回值。
如果没有元素与选择器匹配,则返回值解析为 null。
来自: 木偶文件
Carsten解决了我提出的问题的第二部分,我非常感谢他!
但是,他的第一部分解决方案无效。
这是我如何使其工作的方式:
const values = await page.evaluate(
() => [...document.querySelectorAll('.C2')]
.map(element => element.getAttribute('src'))
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.