我正在使用CasperJS编写一个网页脚本,该网页将框架集多次分层2个子框架(在某些情况下会深入3层)。该网站是在线电子邮件客户端的旧版本。我正在尝试检查是否有新消息,如果有,请下载任何附件。
每个页面的格式始终为:第一帧存储登录凭据,第二帧包含实际内容。
我有两个需求:使用waitForSelector调用来查找页面何时完全加载,这总是多层深度,并在最深的节点点击以查找电子邮件消息。
如何访问多帧深度的选择器? CasperJS很容易做到,但是我无法让我的脚本达到多层。
我尝试过使用窗口对象,但CasperJS选择器一直在抛出错误。
casper.waitForSelector(window.frames[1].document.getElementById('frame[name = Frame_A ]'), {
// when loaded do this
});
答案 0 :(得分:1)
您不能直接在CasperJS脚本中使用document
对象。您应该先等待该帧加载,然后切换到该帧:
casper.start("...", function() {
casper.waitForSelector(frameSelector, function() {
casper.withFrame('Frame_A', function () {
//do something
});
})
});