waitForSelector即使元素在屏幕上也会超时



我正在构建一个结帐机器人,但是我无法通过那些愚蠢的"输入你的电话号码作为文本"网站做的弹出窗口,我告诉机器人点击的元素出现在屏幕上,但机器人不会点击它。这是我在javascript上的第一个项目,我不知道我在做什么,我有点把学习作为你现在去编码的方法,我正在学习很多,但我真的困在这里,我找不到我做错了什么。

async function regectingnumber(page) {
try {
console.log("Rejecting number")
//await waitForTimeout(2000)
//await page.setDefaultNavigationTimeout(60000);
console.log("waiting...")
await page.waitForSelector('button[class= css-10e85z4 errp0sa0]', {timeout:60000})
console.log("waiting...")
await page.evaluate(() => document.getElementsByClassName('button css-10e85z4 errp0sa0')[0].click());
console.log("Number entered!");
//await page.click('button[class="css-yq30jm e5ippug0"]');
//console.log("Number rejected!");
} catch (err) {
console.error(err);
}
}

这只是代码的一小部分我在这部分出现了错误因为它不允许我发布完整的内容而不将其称为垃圾

选择器错误,更改

await page.waitForSelector('button[class= css-10e85z4 errp0sa0]', {timeout:60000})

await page.waitForSelector('button.css-10e85z4.errp0sa0', {timeout:60000})

使用它来点击,你可以把它存储到一个变量中:

const myButton = await page.waitForSelector('button.css-10e85z4.errp0sa0', {timeout:60000});
await myButton.click();

参见https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector在控制台中使用选择器。

最新更新