首页 > 解决方案 > 如何在控制台中使用 JS 在 Angular 中手动选择选项?

问题描述

作为浏览器自动化的一部分,我需要从浏览器控制台(没有自动化工具)连接到 Angular 应用程序,并从两个下拉列表中手动选择所需的“状态”和“城市”。我之前已经dirty通过 JavaScript 代码成功输入表单(例如用户名字段),但我无法自动进行下拉选择。

我试图将$viewValue,和设置为对象$modelValue,然后触发使用 and 。但我无法成功更新对. 执行该函数后,状态和城市值将从视图中清除。我无权访问 Angular 源代码,并且该网页受 IP 限制,遗憾的是不公开。但我已经在这里上传了JSON 文件以及 HTML 元素代码和我的 JavaScript 代码在片段中。里面有两个控件$$rawModelValue$$lastCommittedViewValuestates$digest$scope.$apply()controller("ngModel").$render()$scope$apply()$scope$scopeState.state.$$controls我认为与下拉列表有关。我阅读了 Angular 架构以及模板和指令以及 ngModel 的工作原理,但仍然无法弄清楚在这种情况下如何手动选择选项。当我们单击下拉列表时,您能否详细解释一下发生了什么?哪个函数或指令负责以及如何在控制台中使用 JavaScript 执行此操作?

var myState = document.evaluate("//*[@id='state']", document).iterateNext();
var elNameState = angular.element(myState);
var $scopeState = elNameState.scope();
$scopeState.state.$$controls[state].$viewValue='{id: 20}';

var myCity = document.evaluate("//*[@id='city']", document).iterateNext();
var elNameCity = angular.element(myCity);
var $scopeCity = elNameCity.scope();
$scopeState.state.$$controls[city].$viewValue='{id: 5}';

更新:现在通过更改 id 并触发摘要来更新范围。

标签: javascriptangularjsautomation

解决方案


推荐阅读