angular のモデルに変数を突っ込む
angular のモデルに直接値を突っ込んでもHTML要素の書き換えは反映されない。
ng-model を探す
angular を呼び出して。html element からスコープを取り出す。
var scope = angular.element(document.querySelector('input[name=nationalId]')).scope();
新生銀行での例
modelをscope で探して apply する。
var scope = angular.element(document.querySelector('input[name=nationalId]')).scope(); scope.$apply(function() { scope.nationalId='123456789' scope.password='AAAAAAAAA' });
これで、だいたい動く。angarJSなので、typescriptベースのangularでも動くかは試してないから、apply がどのバージョンまで動くかはわからない。
Angularの場合は、次で動くはず。
ng.probe($0)
document.forms[] や HTMLElementを使うところから比べるAngularは自己完結なのでちょっとめんどくさいですよね。
AngularJS/Angular に特化するより、DOMのInput系のイベントをファイアしたほうが楽だと思う。
今後、webasembly とか出てきたらスクレーパーはどんどん難しくなっていくだろうな辛い。