我正在使用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更新?
答案 0 :(得分:1)
这是更新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')" });