搜尋

首頁  >  問答  >  主體

"waitForSelector"在元素可見前超時等待,儘管元素在螢幕上

我正在建造一個結帳機器人,但是在處理那些愚蠢的「輸入手機號碼以接收簡訊」的彈跳窗時遇到了麻煩,我告訴機器人要點擊的元素出現在螢幕上,但機器人卻不點擊它。這是我第一個使用JavaScript的項目,我不知道自己在做什麼,目前我正在邊學邊做的過程中學到了很多,但我真的卡在這裡,找不到我做錯了什麼。

async function regectingnumber(page) {
    try {
        console.log("拒绝号码")
        //await waitForTimeout(2000)
        //await page.setDefaultNavigationTimeout(60000);
        console.log("等待中...")
        await page.waitForSelector('button[class= css-10e85z4 errp0sa0]', {timeout:60000})
         console.log("等待中...")
         await page.evaluate(() => document.getElementsByClassName('button css-10e85z4 errp0sa0')[0].click());
        console.log("号码已输入!");
        //await page.click('button[class="css-yq30jm e5ippug0"]');
        //console.log("号码已拒绝!");
    } catch (err) {
        console.error(err);
    }
}

這只是程式碼的一小部分,我在這部分上遇到了錯誤,因為我不能發布完整的程式碼,否則會被視為垃圾訊息。

P粉761718546P粉761718546262 天前1724

全部回覆(1)我來回復

  • P粉052686710

    P粉0526867102024-04-05 15:09:49

    您的選擇器是錯誤的,請更改

    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以在控制台中使用選擇器。

    回覆
    0
  • 取消回覆