Nightmare-iframe动态iframe名称
Nightmare-iframe dynamic iframe name
如何使用 nightmare-iframe 插件访问具有随机生成名称的 iframe?
我试过了
var name = yield nightmare
.goto(defaultUrl)
.click('.btn-login')
.wait('iframe')
.evaluate(function() {
return document.getElementsByTagName('iframe');
});
yield nightmare.use(iframe.withFrameName(name, function(IFnightmare) {
IFnightmare
.type('input[name=username]', 'username')
.type('input[name=password]', 'password')
.click('button[type=submit]')
}))
但此代码以 - TypeError: Cannot read 属性 'switchToFrame' of undefined
结尾
nightmare-iframe
与 Nightmare 不兼容 >2.x - 它希望能够调用 PhantomJS' switchToFrame
,这在 Electron 中不存在。
从这里开始,我认为您有两个选择:
- 回到 Nightmare 1。8.x. 它不再受支持(据我所知),但它以 PhantomJS 作为支持渲染器运行。
- 使用不同的库。 This PR was proposed as a fix for the long-standing iframe issue when running with Electron as a possible way to get Nightmare to perform similar sorts of actions as the ones you need. I rewrote it as a plugin,这可能对您有用。 (该插件非常危险。小心使用。)
为了完整起见,我还应该指出原生 iframe 支持 has been proposed Nightmare 的下一个主要修订版。
如何使用 nightmare-iframe 插件访问具有随机生成名称的 iframe?
我试过了
var name = yield nightmare
.goto(defaultUrl)
.click('.btn-login')
.wait('iframe')
.evaluate(function() {
return document.getElementsByTagName('iframe');
});
yield nightmare.use(iframe.withFrameName(name, function(IFnightmare) {
IFnightmare
.type('input[name=username]', 'username')
.type('input[name=password]', 'password')
.click('button[type=submit]')
}))
但此代码以 - TypeError: Cannot read 属性 'switchToFrame' of undefined
结尾nightmare-iframe
与 Nightmare 不兼容 >2.x - 它希望能够调用 PhantomJS' switchToFrame
,这在 Electron 中不存在。
从这里开始,我认为您有两个选择:
- 回到 Nightmare 1。8.x. 它不再受支持(据我所知),但它以 PhantomJS 作为支持渲染器运行。
- 使用不同的库。 This PR was proposed as a fix for the long-standing iframe issue when running with Electron as a possible way to get Nightmare to perform similar sorts of actions as the ones you need. I rewrote it as a plugin,这可能对您有用。 (该插件非常危险。小心使用。)
为了完整起见,我还应该指出原生 iframe 支持 has been proposed Nightmare 的下一个主要修订版。