使用 WebBrowser 自动填写 AngularJS 表单

Using WebBrowser to automate filling in an AngularJS form

我正在使用 WebBrowser 在使用 AngularJS 的网站上自动填写文本框。

这是他们网站上的HTML

<input name="email" type="email" placeholder="Email address" ng-model="login.email" autofocus="" class="ng-pristine ng-valid ng-empty ng-valid-email ng-touched" aria-invalid="false">

这是我的 C# 代码

webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("email")[0].SetAttribute("value", _login);

填充输入框,但我认为它不会更新 Angular 模型。
因此您无法提交表单,因为该网站 (即.Angular)认为还是空的.

如何从我的 WebBrowser 控件触发 ng-model 更新?

这是更新 ng-model 所需的脚本

angular.element($("input[name='email']")).triggerHandler('change')

您可以像这样从 WebBrowser 执行它

wb.Document.InvokeScript("eval", new[] { "angular.element($('input[name=email]')).val('your@email').triggerHandler('change')" });