Joe*_*Joe 6 javascript puppeteer
这是我第一次使用 puppeteer 进行一些轻型自动化。我在尝试单击位于 iframe 内的按钮时遇到问题。
这是我的代码:
await page.waitForSelector('iframe');
const frameElement = await page.$(
'iframe[src="https://ibx.key.com/ibxolb/login/client/index.html"]',
);
const frame = await frameElement.getFrame();
Run Code Online (Sandbox Code Playgroud)
由于getFrame()frameElement 作为JSHandle@node.
我可以访问的 iframe 选择器是src和title。正如你所看到的,我正在使用src.
我已经搜索并搜索了如何执行此操作,但这些示例似乎都不适合我。
我被困住了,所以如果有人有任何建议、解决方案或方向,我将不胜感激。
谢谢你,
乔
*.key.com如果您从或旁边的 URL/网站访问 iframe *.keybank.com,则由于 CSP 指令,您将无法打开 iframe。
打开 chrome 开发者控制台,如果您可以看到此消息,那么这是因为 CSP 指令不允许您访问 iframe 站点 URL。
拒绝在框架中显示“ https://ibx.key.com/ibxolb/login/client/index.html ”,因为祖先违反了以下内容安全策略指令:“frame-ancestors *.key.com *.keybank .com”。
如果您没有看到上面的任何消息,您可以尝试这样
const frame = page.frames().find(frame => frame.url() === 'https://ibx.key.com/ibxolb/login/client/index.html');
const clickLogin = await frame.click('.login-button-space')
Run Code Online (Sandbox Code Playgroud)