我已经在PhantomJS中加载了一个页面(在NodeJS中使用它),并且该页面上的JS函数doRedirect()
包含
...
document.cookie = "key=" + assignedKey
document.location.reload(true)
我像这样从PhantomJS运行doRedirect()
page.evaluate(function() {
return doRedirect()
}).then(function(result) {
// result is null here
})
我希望PhantomJS关注document.location.reload(true)
并返回该新页面的内容。怎么办呢?
答案 0 :(得分:1)
document.location.reload()
无法在任何地方导航,它会重新加载页面。这就像点击浏览器的刷新按钮一样。这一切都发生在前端,而不是发生300 Redirect
的服务器。
只需调用该功能,等待PhantomJS完成加载页面,然后向其询问内容。
您可以使用page.onLoadFinished
事件等待PhantomJS完成加载。此外,您可能需要在加载后使用setTimeout()
等待一些额外的时间让页面内容异步加载。
var webPage = require('webpage');
var page = webPage.create();
page.onLoadFinished = function(status) {
// page has loaded, but wait extra time for async content
setTimeout(function() {
// do your work here
}, 2000); // milliseconds, 2 seconds
};