suchen

Heim  >  Fragen und Antworten  >  Hauptteil

„waitForSelector“ läuft ab, bevor das Element sichtbar wird, obwohl das Element auf dem Bildschirm angezeigt wird

Ich baue einen Checkout-Bot, aber ich habe Probleme mit diesen dummen „Geben Sie Ihre Telefonnummer ein, um eine Textnachricht zu erhalten“-Popups, bei denen das Element, auf das ich den Bot anklicken soll, auf dem Bildschirm erscheint, der Bot jedoch nicht Klick es an. Dies ist mein erstes Projekt, das JavaScript verwendet, und ich habe keine Ahnung, was ich mache, und ich lerne im Laufe der Zeit viel, aber ich stecke wirklich hier fest und kann nicht herausfinden, was ich falsch mache.

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);
    }
}

Dies ist nur ein kleiner Teil des Codes. Bei diesem Teil ist ein Fehler aufgetreten, da ich nicht den vollständigen Code veröffentlichen kann, da er sonst als Spam angesehen wird.

P粉761718546P粉761718546227 Tage vor1644

Antworte allen(1)Ich werde antworten

  • 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以在控制台中使用选择器。

    Antwort
    0
  • StornierenAntwort