html 选择器使用谓词的谓词
html selector using predicate of predicate
我正在与 puppeteer 合作,我想 select 通过查找具有特定标题名称的 td 来获得 tr。
我试过了:
const targetPage = page;
const td = 'td[title="18to22"]';
const td1 = await waitForSelectors([[td]], targetPage, timeout);
async function waitForSelectors(selectors, frame, timeout) {
for (const selector of selectors) {
try {
return await waitForSelector(selector, frame, timeout);
} catch (err) {
console.error(err);
}
}
throw new Error(
"Could not find element for selectors: " + JSON.stringify(selectors)
);
}
有效。现在我想获得 parent 行 (tr)
我该怎么做?
您无法仅使用 CSS 选择器解决它(:has()
目前“支持”不佳)。
我会使用 page.$eval
togethet with Node.parentElement
(I also recommend optional chaining,但当然 <td>
通常有一个 <tr>
父)
在下面的例子中我取回了它innerText
,当然你可以根据需要使用节点元素
const parent = await page.$eval('td[title="18to22"]', el => el?.parentElement?.innerText)
我正在与 puppeteer 合作,我想 select 通过查找具有特定标题名称的 td 来获得 tr。
我试过了:
const targetPage = page;
const td = 'td[title="18to22"]';
const td1 = await waitForSelectors([[td]], targetPage, timeout);
async function waitForSelectors(selectors, frame, timeout) {
for (const selector of selectors) {
try {
return await waitForSelector(selector, frame, timeout);
} catch (err) {
console.error(err);
}
}
throw new Error(
"Could not find element for selectors: " + JSON.stringify(selectors)
);
}
有效。现在我想获得 parent 行 (tr)
我该怎么做?
您无法仅使用 CSS 选择器解决它(:has()
目前“支持”不佳)。
我会使用 page.$eval
togethet with Node.parentElement
(I also recommend optional chaining,但当然 <td>
通常有一个 <tr>
父)
在下面的例子中我取回了它innerText
,当然你可以根据需要使用节点元素
const parent = await page.$eval('td[title="18to22"]', el => el?.parentElement?.innerText)