Phantom.js填写字段,点击提交,现在卡在访问下一页

我已经开始phantom.js(顺便说一句,我恋爱了)。 我试图让无头浏览器去我的PHPpipe理面板,用用户名和密码login,并从login后redirect到的页面,我想从一个div标签中获取一些文本。

到目前为止,我设法成功填充字段,创build一个单击事件,甚至find对div标签的DOM部分的访问,并获得inner.Text。

对我来说唯一缺less的部分是当phantom.js单击一个button(在这种情况下是loginbutton)时要做什么,它将login我并更改页面内容。 .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) 

所以剩下的唯一问题就是如何处理redirect并在其他页面上启动脚本。

谢谢,

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

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

这应该是在触发.click()之前来的。