【发布时间】:2021-05-04 01:47:51
【问题描述】:
我正在尝试为 puppeteer 找到相应的代码来自动按下按钮。
在用户脚本中可以通过
轻松完成document.getElementsByClassName("details-cart-button btn btn-primary btn-block btn-lg d-flex justify-content-center tp-button ")[0].click();
但是我正在努力使用 puppeteer 复制相同的行为。
到目前为止我尝试了什么:
//Try 1:
await page.click('a[class="details-cart-button btn btn-primary btn-block btn-lg d-flex justify-content-center tp-button "]');
//Try 2:
await page.$eval('a[class^="details-cart-button"]', el => el.click());
//Try3:
const form = await page.$('id#add-to-cart-form');
await form.evaluate( form => form.click() );
//Try4:
await Promise.all([
await page.click('#add-to-cart-form > a.details-cart-button.btn.btn-primary.btn-block.btn-lg.d-flex.justify-content-center.tp-button')
]);
这些方法似乎都不起作用,我不知道如何完成它。
谁能给我指出正确的方向?
提前非常感谢!
【问题讨论】:
-
我没有测试选择器,但代码看起来是正确的。您能否添加更多关于您的测试设置的信息?您确定 puppeteer 正确访问该页面吗?该页面上有一个 Cookies/Tracking 弹出窗口需要处理。屏幕截图很有帮助(例如,
await page.screenshot({path: 'test1.png'});)