2

我从 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)

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

谢谢,

4

1 回答 1

1

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

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

这应该在触发之前出现.click()

于 2012-03-08T18:25:28.433 回答