使用脚本或书签自动登录到网站



我一直在尝试使用各种不同的方法来弄清楚这一点。我正在尝试创建脚本/书签或某种类型的快速操作,以打开使用特定URL的浏览器选项卡或窗口,并在使用凭据时自动记录我。目前,我并不关心安全。

起初,我认为我会尝试使用JavaScript书签来做到这一点,但是我在研究中没有发现的东西。接下来,我尝试创建一个bash脚本,但是我不知道如何通过终端发送凭据。最近,我从字面上复制了网站的源代码,创建了一个本地文件,并试图将一些我可以用凭据预填充表单数据并使用JS提交表单的内容,但我已经关闭了此内容,但是由于某种原因,当我使用JS提交功能时,它会出现错误,并说用户名和密码无效。但是,当我关闭提交功能并在本地HTML页面上手动单击"登录"时,它可以按预期工作。我希望这是一次单击过程,因此使用Onload/Fimat或To That Inlation的想法对我来说真的很重要。

我正在测试的网站有铁轨后端,我的下一个尝试可能是尝试使用帖子来完成我的想法,但这目前不在我对该主题的知识水平。

任何人回答:我不想使用密码管理器来完成此操作。

我的要求是,我要么能够a)运行脚本,要么b)使用1键选项每个网站执行此操作。理想情况下,我能够以一种程序化的方式对此进行设置,以使用多个网站进行此操作,但是我现在对1感到满意。

我知道以前已经回答过类似的问题,但是我无法使用这些帖子中的信息(无论如何我都看过)来找出一种很好的方法。

  1. 为您打开的当前页面创建书签。
  2. 编辑书签
  3. 将URL的值更改为这样的东西。(javascript :( function(){code_goes_here_from_bellow})()();
  4. 在页面上找到用户名和密码的字段。

给出了hotmail的示例

var inputs = document.getElementsByTagName('input'); for(var i=0;i<inputs.length;i++){if(inputs[i].name === 'passwd'){inputs[i].value = 'YOUR_PASSWORD'}else if(inputs[i].name === 'loginfmt'){inputs[i].value = 'YOUR_USERNAME'}}; document.getElementById(document.getElementsByTagName('form')[0].id).submit();

尝试Casperjs。

提出的解决方案对我不起作用,而不是花费大量时间安装一个我永远不会使用的测试框架,而是为此目的,我决定尝试这样做另一种方式。

首先,我发现我的JS以前没有工作的原因是因为该站点不允许提交JS,或者至少是我遇到此错误时似乎是什么:"Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience"

我正在使用的JavaScript实际上是在工作,只是没有提交。我使用以下代码填充字段(由于没有名称或ID,在页面上使用"类名称"元素):

document.getElementsByClassName('username')[0].setAttribute('value', 'user');
document.getElementsByClassName('password')[0].setAttribute('value', 'password');

正如我提到的,问题是我尝试使用jQuery提交表格:document.getElementsByClassName('loginForm')[0].submit();这是上述错误出现的时候。我真的不能确定这是否是原因的根源,但是页面确实提交了,但是当我做

时,我会遇到无效的用户名/密码错误

我还没有找到一种解决这个问题的好方法,但是我的短期" hacky"解决方案是使用applescript将return击键发送给浏览器以提交表格。理想情况下,我想弄清楚如何使用jQuery提交工作,但我不确定如何解决。

最新更新