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