Javascript PhantomJS:打开(通过模拟用户点击)一个弹出窗口,获取新窗口的源代码

Javascript PhantomJS:打开(通过模拟用户点击)一个弹出窗口,获取新窗口的源代码,javascript,jquery,web-crawler,phantomjs,Javascript,Jquery,Web Crawler,Phantomjs,在对DOM进行一些AJAX操作之后,我使用PhantomJS检索网站的源代码。然后使用jQuery,我模拟单击按钮元素(它的链接隐藏在一个模糊的JavaScript脚本中)。此按钮的onClick效果是打开一个新窗口 我想做的是检索这个新窗口的源代码。 我不能做的是在JS中使用window.open(“url”)方法,因为我无法检索新窗口的url,因为它在脚本中被混淆了 我一直在寻找一些解决方案,但尚未成功实施: 使用click()函数以任何方式返回新窗口 将焦点切换到JS中的新窗口 检索按钮的

在对DOM进行一些AJAX操作之后,我使用PhantomJS检索网站的源代码。然后使用jQuery,我模拟单击按钮元素(它的链接隐藏在一个模糊的JavaScript脚本中)。此按钮的
onClick
效果是打开一个新窗口

我想做的是检索这个新窗口的源代码。

我不能做的是在JS中使用
window.open(“url”)
方法,因为我无法检索新窗口的url,因为它在脚本中被混淆了

我一直在寻找一些解决方案,但尚未成功实施:

  • 使用
    click()
    函数以任何方式返回新窗口
  • 将焦点切换到JS中的新窗口
  • 检索按钮的
    onClick
    的url,而不必解析JS脚本
  • 以下是我目前掌握的情况:

    var page = require("webpage").create();
    
    page.open("http://www.example.com", function() {
        page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
            var page = page.evaluate(function() {
                $("#myButton").click(function() {
                    // ???
                });
            });
            phantom.exit();
        });
    });
    

    如果有解决方案,我愿意接受其他框架/技术

    你看到了吗?示例:谢谢,因为弹出窗口似乎没有加载,所以它没有像我所希望的那样工作,但我找到了一个解决方法:弹出窗口的url出现在回调
    onResourceRequested
    中,因此我将解析它,然后打开新页面。