puppeteer - 无法检索 href url 属性
问题描述
我无法返回href,我确实检查了stackoverflow的所有页面以查看是否有解决方案,但遗憾的是我确实尝试了很多但没有工作。
这是它的外观:
<a href="https://test.cc/l/2342942">this is a test</a>
当我想复制选择器时,它会告诉我:
#bodyblock > ul > li:nth-child(1) > h4 > a
好吧,当我使用该选择器时,它只显示文本(这是一个测试)而不是链接。我需要该链接的 url。
我确实尝试过这样的事情,
var titlesList = document.querySelectorAll('#bodyblock > ul > li:nth-child(1) ');
或这个
var titlesList = document.querySelectorAll('#bodyblock > ul > li:nth-child(1) ').href;
还有这个
let list = await page.$$eval('#bodyblock > ul > li:nth-child(1) > h4 ', a => a.href);
console.log (list)
没有返回网址,我做错了什么?
问候
解决方案
您将需要使用选择器来获取a
元素,然后摆脱href
它。从您在上面发布的选择器中猜测,一种可能的方法是:
const url = await page.$eval('#bodyblock > ul > li:nth-child(1) > h4 > a', el => el.href);
推荐阅读
- bluesnap - 如何在扩展支付 API 中覆盖价格
- flask - 在 Flask 路由中检查外部请求的请求标头和有效负载
- wordpress - WP_REST_Request 为自定义端点返回 rest_no_route (404)
- jmeter - 可扩展性测试和其他性能测试有什么区别?
- vb.net - 如何查看循环中值的变化?
- python - 如何在命令中取消脚本 discord.py
- php - 如何使当前年份在页脚模板中可用
- sql - 带有多个选择语句的oracle中的LISTAGG
- c# - 如何在现有内容(例如 pdf 中的图像/形状)上添加水印?
- google-maps-markers - Android中是否有任何选项可以在运行时过滤元素(如地图上的不同类型标记)以提供可访问性的对讲