在跨站点域中自动登录



我有140多个不同网站的id和密码。我想打开每个网站动态设置id密码和登录名。

我尝试了很多东西,比如iframe、框架集、父窗口访问、传递的url脚本。但它不起安全作用。请帮帮我。

谢谢

您可以使用Selenium项目中的Selenium IDE插件(仅限Firefox)。

SeleniumIDE插件允许您在任何页面上记录您的操作,它将生成一个脚本,类似于(伪代码):

openPage('http://google.com');
click("#signinElement");
click("#usernameInputElement")
enter("username");
click("#passwordInputElement")
enter("password");
click("#submitButton")
// ...
openPage('http://amazon.com');
// ...

然后,您可以编辑它,在整个脚本周围添加一个循环,并迭代您的凭据列表。

假设您想在本地进行,而不是创建网站

如果您试图更改登录提供商网页上的输入值,则确实会出现跨源问题为了更接近自动化,我建议在加载登录页面后打开浏览器控制台。正如您可能知道的,控制台不仅仅用于日志,它还允许您向页面写入Javascript命令。如果您提前准备好以下代码,所要做的就是在控制台中复制和粘贴,以控制页面元素。

  1. 收集输入的名称,并提交每个帐户提供商的元素。类似以下内容:

    var logins = { yahoo: { url:'https://login.yahoo.com', usernameInputName: 'username', usernameInputValue: 'YOUR_USER_ID_HERE', usernameStep: true, usernameStepSubmit: 'signin', passwordInputName: 'passwd', passwordInputValue: 'YOUR_PASSWORD_HERE', submit: 'signin' }, //google: {... };

  2. 打开您的帐户登录页面,在本例中-https://login.yahoo.com.雅虎有两个登录步骤,首先输入用户名,提交,然后输入密码,然后再次提交。在这种情况下,logins["yahoo"].usernameStep被设置为true

  3. 如果usernameStepfalse,您只需动态"点击"logins[LOGIN_NAME].submit:即可提交一次

{

document.getElementsByName(login.usernameInputName)[0].value = login.usernameInputValue;document.getElementsByName(login.passwordInputName)[0].value = login.passwordInputValue;document.getElementsByName(login.submit)[0].click();

}

  1. 如果usernameSteptrue,则在输入用户名后使用document.getElementsByName(login.usernameStepSubmit)[0].click();,然后转到密码并提交

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新