Показать сообщение отдельно
  #4 (permalink)  
Старый 20.07.2017, 03:04
Новичок на форуме
Отправить личное сообщение для OlegROA Посмотреть профиль Найти все сообщения от OlegROA
 
Регистрация: 18.07.2017
Сообщений: 4

Так вроде бы в первом сообщении подробно описал?

Есть сайт на AngularJS (версия 1.5.8), который используется для внесения информации и получения отчетов. Сайт написан и поддерживается сторонними разработчиками. Т.е., доступа к внутренностям сайта у нас нет.
Для автоматизации заполнения многих форм на сайте я использую python-скрипты в связке с Силениумом. Т.е., эмуляция действий пользователя в браузере.

Что бы не "бегать" по всем полям я с помощью js-скрипта (аналог действий в консоли разработчика любого браузера) получаю ссылку на контроллер (angular.element(document.querySelector("css-селектор")).controller()) и могу напрямую заполнять свойства модели.

Типа, ctrl.name="Иван"; ctrl.city="Москва" и т.д.

Так вот, на некоторых страницах используются несколько контроллеров. К примеру, головная форма на странице использует контроллер "MainFormCtrl". При нажатии на кнопочку создается dom-структура вложенной формы, которая использует уже другой контроллер "SubFormCtrl".

Вышеописанный код получения ссылки на контроллер для любого dom-элемента такой страницы всегда возвращает ссылку на "MainFormCtrl", через который я не могу получить доступ к свойствам вложенной формы! Название головного контроллера есть прямо в самом контроллере, а названия других контроллеров видны в коде js-модулей, подключенных к данной странице.

Так как включен продакшен-режим, то отладка отключена и получить ссылки на scope нужных элементов возможно только после вызова angular.reloadWithDebugInfo(), что вызывает дополнительную перезагрузку страницы с повторным ожиданием полной загрузки - т.е., значительно увеличивает время обработки форм на таких страницах.

Вот и спрашиваю совета у разработчиков, которые знают Angular изнутри - возможно ли каким либо образом с помощью js-кода получить доступ к свойствам вложенных моделей без необходимости включения режима отладки?
Или - возможно ли из консоли разработчика браузера получить ссылку на любой контроллер, используемый на текущей странице?

Просьба не предлагать надстройки браузеров типа Батаранга и ему подобных - во первых, нужна автоматизация а не ручное разглядывание доступных свойств (их имена я и так прекрасно вижу в ng-аттрибутах dom-элементов), во-вторых - в режиме отладки я и сам могу получить scope любых элементов на странице!

Последний раз редактировалось OlegROA, 20.07.2017 в 03:13.
Ответить с цитированием