使用Puppeteer,如何单击选择器的父元素?

时间:2019-04-25 21:01:52

标签: node.js testing 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);

所以我想定位并单击父标签元素。

如何更改选择器常量的值以定位标签?

1 个答案:

答案 0 :(得分:0)

  

对不起,我的解释不太好。不能,我是说该元素不可见,因此我不认为可以从技术上单击它。因此,我认为我需要定位可见的标签,但是我不知道如何定位

目前不可见或不可见?

您是否尝试过使用 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()
});