javascript - 检查元素是否存在并获取属性
问题描述
我不知道为什么这段代码不起作用:
var stock;
var stockEL = await page.$eval('.qty tbody tr td:nth-of-type(1) span');
if ( stockEL !== null) {
stock = stockEL.getAttribute('data-tip');
}
我正在尝试在 Puppeteer 中使用。我想检查第一个 td 的跨度是否存在,如果存在,请读取 span 属性,如果不存在则什么也不做。
Error: Error: failed to find element matching selector ".qty tbody tr td:nth-of-type(1) span"
解决方案
试试这个变种await page.$(selector)
或page.waitForSelector
. 请记住,$eval 和 $$eval 需要一个函数作为它的第二个参数。
[示例评估]
const data = await page.$$eval('selector', el => { /*code*/ });
[示例等待选择器]
await page.waitForSelector('body > div.wrapper > aside > section > ul > li:nth-child(4) > a > span');
这里有一些有用的链接
推荐阅读
- android - 如何在 android studio 中最小化 .apk 的大小?
- css - 范围 CSS 仅适用于 Svelte-Sapper 中的特定组件
- java - Android:如何移动我的画布可绘制形状
- c++ - 如何在 C/C++ 中使用结构?
- postgresql - 如何在数字前加上一个固定的三个字母代码?
- sql - 在 SQL Server 2016 中使用 sp_MSForEachDB 的列名无效
- loopbackjs - 我们可以在环回框架查找 API 中为限制设置默认值吗?
- c# - 根据过滤条件生成动态 SQL 查询
- python - 如何在python中显示变量名?
- c++ - 如何确定窗口的任何部分是否对屏幕可见?