我有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命令。如果您提前准备好以下代码,所要做的就是在控制台中复制和粘贴,以控制页面元素。
-
收集输入的名称,并提交每个帐户提供商的元素。类似以下内容:
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: {... };
-
打开您的帐户登录页面,在本例中-https://login.yahoo.com.雅虎有两个登录步骤,首先输入用户名,提交,然后输入密码,然后再次提交。在这种情况下,
logins["yahoo"].usernameStep
被设置为true
-
如果
usernameStep
是false
,您只需动态"点击"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();
}
- 如果
usernameStep
是true
,则在输入用户名后使用document.getElementsByName(login.usernameStepSubmit)[0].click();
,然后转到密码并提交
希望这能有所帮助。