木偶如何在ID,名称不可用时单击按钮

时间:2019-07-31 12:54:03

标签: google-chrome-devtools puppeteer

这可能很简单,但是如果id,按钮名称不可用,我将无法在Puppeteer中单击按钮。

考虑以下html代码。

<button data-bb-handler="success" type="button" class="btn btn-success">Answer</button>

如何单击Puppeteer中的“答案”按钮。

我尝试了下面的代码,它不起作用。

page.click('#Answer');
page.click('button[data-bb-handler="success"]');

请告诉我在这种情况下如何单击按钮。

1 个答案:

答案 0 :(得分:3)

这应该基于您的HTML:

await page.click('button[data-bb-handler="success"]');

或尝试使用$eval功能单击。

await page.$eval('button[data-bb-handler="success"]', button => button.click());

但这是不受信任的事件,请详细了解here

另外,在单击之前,您可能需要等待该元素:

await page.waitForSelector('button[data-bb-handler="success"]', {visible: true});
await page.click('button[data-bb-handler="success"]');
// or
await page.$eval('button[data-bb-handler="success"]', button => button.click());