Javascript 使用PhantomJs进行登录测试

Javascript 使用PhantomJs进行登录测试,javascript,node.js,phantomjs,Javascript,Node.js,Phantomjs,我的phantom Js代码有问题,正如您在下面看到的,我有代码来测试我的朋友web服务器(使用节点Js生成)。实际上,它看起来很简单,运行起来也很完美 但是 当我申报时 var userName='MyName' var密码='MyWord' 然后将其放在下方 var地址=”http://localhost:3333"; 和交换 document.getElementById('username')。值='MyName' document.getElementById('password')。

我的phantom Js代码有问题,正如您在下面看到的,我有代码来测试我的朋友web服务器(使用节点Js生成)。实际上,它看起来很简单,运行起来也很完美

但是

当我申报时
var userName='MyName'
var密码='MyWord'
然后将其放在下方
var地址=”http://localhost:3333";
和交换
document.getElementById('username')。值='MyName'
document.getElementById('password')。值='MyWord'

document.getElementById('username')。value=username
document.getElementById('password')。value=password

它从my friend web服务器返回无效的用户名或密码。你能帮我找出原因吗。这是我的第一个“javascript世界”代码

我已经读过了,然后

但这只会让我更加困惑

谢谢,

Ahmad

问题在于
page.evaluate()
是沙盒,因此无法访问幻影脚本的变量

自PhantomJS 1.6以来,JSON可序列化参数可以传递到
页面。evaluate()
。 evaluate函数的参数和返回值必须是一个简单原语对象。但是,可以通过JSON序列化对象

您可以将代码更改为:

page.evaluate(function (login, pwd) {
     ...
     document.getElementById('username').value = login;
     document.getElementById('password').value = pwd;
     ...
}, userName , passWord );

问题在于
page.evaluate()
是沙盒,因此无法访问幻影脚本的变量

自PhantomJS 1.6以来,JSON可序列化参数可以传递到
页面。evaluate()
。 evaluate函数的参数和返回值必须是一个简单原语对象。但是,可以通过JSON序列化对象

您可以将代码更改为:

page.evaluate(function (login, pwd) {
     ...
     document.getElementById('username').value = login;
     document.getElementById('password').value = pwd;
     ...
}, userName , passWord );