Clockify 中的登录表单
Login Form in Clockify
我正在尝试创建一个 PowerShell 脚本来打开 Internet Explorer,导航到 https://clockify.me/login,填写电子邮件和密码输入并提交表单或单击登录按钮。
问题是,当使用以下方式填充输入时:
document.getElementById("email").value="123"
document.getElementById("password").value="123"
我有以下结果:
- 当我使用
document.forms[0].submit()
提交表单时,页面重新加载 URL https://clockify.me/login?email=&password= 但什么也没有发生
- 当我使用 javascript 或手动点击按钮时,它认为输入为空
那么,有没有办法解决这个问题?纯粹使用 javascript 或 PowerShell(我希望让 IE window 不可见)
谢谢!
即使您正在更改 input
DOM 对象的值,这也不足以触发基础 Angular 库的更改检测,从而使表单出现'empty'.
以下纯 JS 示例适用于 Chrome,但我尚未在 Internet Explorer 中对其进行测试:
let email = document.getElementById("email");
let password = document.getElementById("password");
let button = document.getElementsByTagName("button")[0];
email.value = 'someone@example.com';
password.value = 'yourpassword';
// Trigger change detection
email.dispatchEvent(new Event('input'));
password.dispatchEvent(new Event('input'));
button.click();
如果 dispatchEvent
在 IE 中不起作用,您可以尝试使用 createEvent
和 initEvent
。参见 dispatchEvent not working in IE11
我正在尝试创建一个 PowerShell 脚本来打开 Internet Explorer,导航到 https://clockify.me/login,填写电子邮件和密码输入并提交表单或单击登录按钮。
问题是,当使用以下方式填充输入时:
document.getElementById("email").value="123"
document.getElementById("password").value="123"
我有以下结果:
- 当我使用
document.forms[0].submit()
提交表单时,页面重新加载 URL https://clockify.me/login?email=&password= 但什么也没有发生 - 当我使用 javascript 或手动点击按钮时,它认为输入为空
那么,有没有办法解决这个问题?纯粹使用 javascript 或 PowerShell(我希望让 IE window 不可见)
谢谢!
即使您正在更改 input
DOM 对象的值,这也不足以触发基础 Angular 库的更改检测,从而使表单出现'empty'.
以下纯 JS 示例适用于 Chrome,但我尚未在 Internet Explorer 中对其进行测试:
let email = document.getElementById("email");
let password = document.getElementById("password");
let button = document.getElementsByTagName("button")[0];
email.value = 'someone@example.com';
password.value = 'yourpassword';
// Trigger change detection
email.dispatchEvent(new Event('input'));
password.dispatchEvent(new Event('input'));
button.click();
如果 dispatchEvent
在 IE 中不起作用,您可以尝试使用 createEvent
和 initEvent
。参见 dispatchEvent not working in IE11