Javascript 使用PhantomJs进行登录测试
我的phantom Js代码有问题,正如您在下面看到的,我有代码来测试我的朋友web服务器(使用节点Js生成)。实际上,它看起来很简单,运行起来也很完美 但是 当我申报时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')。
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 );