在我的node.js应用程序中,我做了一个,npm install btoa-atob
以便我可以使用btoa()和atob()函数,这些函数在客户端javascript中是原生的,但由于某种原因未包含在节点中.新目录显示在我的node_modules文件夹中,该文件夹本身与app.js一起位于root目录中.然后我确保在我的package.json文件中添加btoa-atob作为依赖项,该文件位于root中.
但是,由于某种原因,它仍然无法正常工作.
console.log(btoa("Hello World!"));
Run Code Online (Sandbox Code Playgroud)
^应该输出"SGVsbG8gV29ybGQh"到控制台,但我得到错误"btoa不是defiend".
我没有正确安装吗?我忽略了什么?
我已经编写了这个PhantomJS脚本来自动登录Instagram.它可以成功填写表单字段并按下提交按钮,但它总是被重定向回登录屏幕,并显示以下消息:
你的用户名或密码不正确.
我100%肯定凭据是正确的,我尝试使用多个Instagram帐户.
我在终端的Mac上运行脚本:
$ phantomjs --ssl-protocol=any --cookies-file=cookies.txt script.js username password
Run Code Online (Sandbox Code Playgroud)
请注意该--ssl-protocol=any
选项.没有它,PhantomJS甚至无法打开登录页面,因为HTTPS.看到这个问题.
这是代码.我将它基于本教程,并更新代码以解释Instagram登录页面源代码的最新变化.
var system = require('system');
var username = system.args[1];
var password = system.args[2];
var page = require('webpage').create();
page.open('https://instagram.com/accounts/login/',
function (status) {
if (status === "success") {
page.evaluate(function (uid, pwd) {
var username_field = document.getElementById('lfFieldInputUsername');
username_field.value = uid;
var password_field = document.getElementById('lfFieldInputPassword');
password_field.value = pwd;
}, username, password);
var point = page.evaluate(function () {
var element = document.getElementsByTagName('button')[0];
var rect = element.getBoundingClientRect();
return …
Run Code Online (Sandbox Code Playgroud)