【问题标题】:Unable to access the elements in iframe in Puppeteer无法在 Puppeteer 中访问 iframe 中的元素
【发布时间】:2021-07-21 06:22:54
【问题描述】:
 await page.isElementVisible('iframe');
    console.log('iframe is ready. Loading iframe content');
    const elementHandle = await page.waitForSelector("iframe[id='payment-form']");
    const frame = await elementHandle.contentFrame();

它一直工作到现在

    // console.log('filling form in iframe');       
    
    const cardType = await frame.$x(`//div[contains(@class, 'css-12kbcej')]//select[@data-elid="card-type"]`);
    await page.click();
    

也尝试这样做

 await page.waitForXPathAndClick(`//div[contains(@class, 'css-12kbcej')]//select[@data-elid="card-type"]`);

还有这个

    const cardType = await frame.$x(`//div[contains(@class, 'css-12kbcej')]//select[@data-elid="card-type"]`);
    await frame.click(cardType);

但没有任何效果

错误信息

错误:评估失败:DOMException:无法在“文档”上执行“querySelector”:提供的选择器为空。 在 puppeteer_evaluation_script:1:33

【问题讨论】:

    标签: selenium iframe frameworks puppeteer


    【解决方案1】:

    您有await page.click(); -- page.click() 需要选择器,例如page.click('myCssSelector')。这就是您收到该错误的原因,The provided selector is empty

    【讨论】:

    • 这是我将选择器传递给 page.click() 时得到的结果 const cardType = await frame.$x(//div[contains(@class, 'css-12kbcej')]//select[@data-elid="card-type"]);等待 page.click(//div[contains(@class, 'css-12kbcej')]//select[@data-elid="card-type"]); ` 错误:评估失败:DOMException:无法在“文档”上执行“querySelector”:'//div[contains(@class, 'css-12kbcej')]//select[@data-elid="card-type" ]' 不是有效的选择器。`
    • xpath 无效,可能是因为您混合了单引号和双引号?试试//div[contains(@class, "css-12kbcej")]//select[@data-elid="card-type"]
    • const elements = await page.$x('//div[contains(@class, "css-12kbcej")]//select[@data-elid="card-type"]') await elements[0].click() 错误:TypeError:无法读取未定义的属性“点击”
    • 我认为它无法访问 iframe 中的元素。 :(
    • 然后你应该识别并切换到iframe,使用driver.switch_to_frame(iframe_element)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2010-11-29
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多