首页 > 解决方案 > Clockify 中的登录表单

问题描述

我正在尝试创建一个 PowerShell 脚本来打开 Internet Explorer,导航到https://clockify.me/login,填写电子邮件和密码输入并提交表单或单击登录按钮。

问题是,当使用以下方法填充输入时:

我有以下结果:

那么,有没有办法解决这个问题?使用纯 javascript 或 PowerShell(我希望保持 IE 窗口不可见)

谢谢!

标签: javascriptpowershellangular2-changedetectionclockify

解决方案


即使您正在更改inputDOM 对象的值,这也不足以触发底层 Angular 库的更改检测,从而使表单显示为“空”。

以下纯 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 中不起作用,您可以尝试使用createEventand initEvent。请参阅dispatchEvent 在 IE11 中不起作用


推荐阅读