Phantom.js填充字段,点击提交,现在只能访问下一页

Phantom.js fill fields,click submit, and now stuck at accessing the next page

本文关键字:访问 一页 提交 填充 js 字段 Phantom      更新时间:2023-09-26

我从phantom.js开始(顺便说一句,我恋爱了)。我正试图让无头浏览器进入我的php管理面板,使用用户名和密码登录,登录后从它重定向到的页面中,我想从div标签中获取一些文本。

到目前为止,我成功地填充了字段,创建了一个点击事件,甚至找到了对div标记的DOM部分的访问权限,并获得了内部。文本

对我来说,唯一缺少的部分是当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)

因此,剩下的唯一问题是如何处理重定向并在另一个页面上启动脚本。

谢谢,

您需要为页面加载设置一个新的回调:

page.onLoadFinished = function(status){
  console.log(window.frames[1].document.getElementById('status').innerHTML)
}

这应该发生在触发CCD_ 1之前。