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

Login 使用脚本或书签自动登录网站,login,web,Login,Web,我一直在尝试用各种不同的方法来解决这个问题。我正在尝试创建脚本/书签或某种类型的快速操作,以打开带有特定URL的浏览器选项卡或窗口,并使用我的凭据自动登录。我现在不太担心安全问题 起初我想我会尝试使用javascript书签来实现这一点,但我在研究中发现没有任何效果。接下来,我尝试创建一个bash脚本,但我不知道如何通过终端发送凭据。最近,我从字面上复制了一个站点的源代码,创建了一个本地文件,并试图破解一些东西,在那里我可以用凭据预先填充表单数据并使用JS提交表单,我已经接近了这一点,但出于某种

我一直在尝试用各种不同的方法来解决这个问题。我正在尝试创建脚本/书签或某种类型的快速操作,以打开带有特定URL的浏览器选项卡或窗口,并使用我的凭据自动登录。我现在不太担心安全问题

起初我想我会尝试使用javascript书签来实现这一点,但我在研究中发现没有任何效果。接下来,我尝试创建一个bash脚本,但我不知道如何通过终端发送凭据。最近,我从字面上复制了一个站点的源代码,创建了一个本地文件,并试图破解一些东西,在那里我可以用凭据预先填充表单数据并使用JS提交表单,我已经接近了这一点,但出于某种原因,当我使用JS提交功能时,它会出错并指出用户名和密码无效。但是,当我关闭提交功能并在本地html页面上手动单击“登录”时,它会正常工作。我希望这是一个一键式的过程,所以使用onload/submit或其他类似的方法对我来说非常重要

我正在测试的站点有一个Rails后端,我的下一次尝试可能是尝试使用POST来完成我的想法,但这目前超出了我对该主题的知识水平

任何人回答:我不想使用密码管理器来完成这项任务

我的要求是,我将能够a)运行脚本或b)使用一个点击选项来完成每个网站。理想情况下,我可以用一种编程的方式来设置多个站点,但目前我很乐意使用1

我知道以前也回答过类似的问题,但我无法利用这些帖子中的信息(反正是我见过的那些帖子)来找出一个好的方法

  • 为当前打开的页面创建书签
  • 编辑书签
  • 将URL的值更改为如下内容。 (javascript:(函数(){CODE_GOES_HERE_FROM_BELLOW})()
  • 在页面上查找用户名和密码字段
  • 给出了hotmail的示例


    var inputs=document.getElementsByTagName('input');for(var i=0;i建议的解决方案对我不起作用,我没有花费大量时间安装一个测试框架,我将永远不会使用它,而只是为了这个目的,我决定尝试另一种方法

    首先,我发现我的JS以前不工作的原因是因为该站点不允许JS提交,或者至少当我遇到这个错误时是这样的:
    “主线程上的同步XMLHttpRequest被弃用,因为它会对最终用户的体验造成有害影响”

    我使用的javascript事实上正在工作,只是没有提交。我使用以下代码填充字段(在页面上使用“Class Name”元素,因为没有名称或ID):

    正如我提到的,问题是当我尝试使用JQuery提交表单时:
    document.getElementsByCassName('loginForm')[0]。submit();
    这就是出现上述错误的时候。我不能确定这是否是原因的根源,但是页面确实提交了,但是当我提交时,我得到了一个无效的用户名/密码错误


    我还没有想出一个好办法来解决这个问题,但我的短期目标是“哈奇”解决方案是使用Applescript向浏览器发送一个
    返回
    击键以提交表单。我很想知道如何使用JQuery提交表单,但我不确定如何解决它。

    使用您的语法时Chrome是否存在已知问题?我尝试使用您的示例作为模板,我得到了语法e错误。另一个好方法是使用casperjs。()使用此功能,您还可以加载所需的站点,然后键入凭据,然后提交。安装并使用整个框架来实现此功能似乎有点过火。当我使用您的代码片段时,我收到了语法错误,因此我选择了自己的路线。另一件事是,不幸的是,并非所有站点都使用ID作为其元素,或者在其他情况下,他们对某些元素使用它们,而不是其他元素。从理论上讲,使用for循环迭代相似的元素是一个好主意,但在必须单独标识每个元素时不起作用。如果您的答案提供了更多关于如何访问元素的上下文,那就更好了。例如,GetElementsbyClassName返回一个数组,而GetElementsbyId返回单个字符串,因此访问值会变得更复杂,具体取决于所访问的元素。请发送完整的代码示例。对我来说,这听起来像是在尝试使用javascript打开页面,在DOM上执行操作,即使DOM未加载,然后执行提交操作。您还提到在示例中使用JQuery,但展示了一个本机javascript解决方案。
    document.getElementsByClassName('username')[0].setAttribute('value', 'user');
    document.getElementsByClassName('password')[0].setAttribute('value', 'password');