我从phantom.js开始(顺便说一下,我爱上了)。我正在尝试让无头浏览器进入我的php管理面板,使用用户名和密码登录,并从登录后重定向到的页面我希望从div标签中获取一些文本。
到目前为止,我设法成功填充字段,创建点击事件,甚至找到对div标签的DOM部分的访问权限并获取inner.Text。
对我来说唯一缺少的部分是当phantom.js点击一个按钮(在这种情况下是登录按钮)时该怎么办,它会登录并更改页面内容。在.click()之后我找不到如何处理;事件
这是我到目前为止所做的代码(顺便说一句,这是一个很好的开始......)
var page = new WebPage();
page.open("the url comes here",
function(status){
if(status != "success"){console.log('fail loading the page');}
page.evaluate(function(){
var arr = document.getElementsByName("formname");
arr[0].elements["username"].value="username here";
arr[0].elements["password"].value="password here";
arr[0].elements["submit"].click();
return;
}
phantom.exit()
});
我想要的代码在
之后的页面上运行console.log(window.frames[1].document.getElementById('status').innerHTML)
所以剩下的唯一问题是如何处理重定向并在另一页上启动脚本。
谢谢,
答案 0 :(得分:1)
您需要为页面加载设置新的回调:
page.onLoadFinished = function(status){
console.log(window.frames[1].document.getElementById('status').innerHTML)
}
这应该在触发.click()
之前正确。