node.js - 使用 Puppeteer 如何单击选择器的父元素?
问题描述
我必须使用的标记如下所示:
<label>
<input type="radio" name="myfield" value="Yes" size>
</label>
我想用收音机作为选择器调用 page.click(selector),但我不能。由于 size 属性,我认为它不可见。
我的 javascript 看起来像这样:
const page = await browser.newPage();
const selector = 'input[name="myfield"]';
await page.click(selector);
所以我想定位并单击父标签元素。
如何更改选择器常量的值以定位标签?
解决方案
对不起,我解释得不是很好。不能,我的意思是该元素不可见,因此我不相信它可以在技术上被点击。因此我认为我需要定位可见的标签,但我不知道如何定位它
暂时不可见还是不可见?
你试过用waitForSelector(selector)
吗?
const page = await browser.newPage();
const selector = 'input[name="myfield"]';
await page.waitForSelector(selector); // waiting here before click
await page.click(selector);
或类似的东西:
const page = await browser.newPage();
const selector = 'label';
await page.waitForSelector(selector);
await page.evaluate((_) => {
document.querySelector('label > input[name="myfield"]').parentElement.click()
});
推荐阅读
- django - POST 用于 Django API,但需要多个输入,而我的模型只有 1 个能够接收输入数据的字段
- regex - 如果字符串至少匹配 x% 的表达式,则通过正则表达式
- java - 无法使用 SOAP Web 服务从 Java 应用程序更新 SharePoint 365 列表项
- sql - 如何解决这个无效的选择列表?
- node.js - LetsEncrypt 根证书到期中断 Azure Function Node 应用程序
- javascript - 单击a时如何获取下载的文件的url标签
- python - 搜索特定单词的 nltk 句子,然后返回最短句子/单词 + 周围单词
- javascript - 循环遍历 json 文件以在我的表中获取单独的元素
- dropbox-api - 获取 RateLimit 但没有带有重试值的标头
- python - 如何为连接其他两个模型字段的模型字段分配值?