Скачать честно - не уверен, что данный вопрос относится к VBA или JS. Практически дописал макрос, но тут возникла ошибка. В работе макроса использую вставки кода JS для заполнения полей формы в браузере. Казалось, нашел код, который подходит, но он начал выдавать ошибку: Syntax error, unrecognized expression: [data-ng-model=text] Сам код выглядит так:
Ошибку вижу в инструменте разработчика, который открывается по нажатию F12 в IE. Исходя из текста ошибки, получается, что выражение не распознано. Но для меня такая ошибки в настоящее время - это очень сложно, пока только учусь. Возможно, кто-нибудь сталкивался с такой ошибкой. Помогите, пожалуйста, понять в чем причина ошибки и как ее исправить. Спасибо!
UPD: Попробовав различные варианты кода, чтобы понять откуда берется ошибка, пришел к выводу, что ошибка появляется, если название свойства data-ng-model имеет в себе точку. К примеру, ошибка не возникает в случае, если:
При чем, если название свойства data-ng-model состоит из одного слова целиком без точек посреди, то ошибка не возникает и все работает отлично. Вероятно, я делаю что-то не так...
Игорь, спасибо а ответ! Сделал как вы написали - сразу заработало. Спасибо огромное! Если можно, небольшой вопрос. При исполнении скрипта заполняются все теги input, у который type = text, но не заполняются те, у которых type = data. Возможно, к ним нужно применять другой способ?
Задача следующая: есть форма на сайте, которую необходимо заполнять часто. Знания под написание макроса на обычную форму на сайте у меня немного есть, и, более-менее все понятно. Но в данном случае оказалось, что форма написана с применением (как позже выяснилось) ангулярного языка (angular js) (если правильно выразился). Данная форма заполняется корректно, но все проблема в том, что после заполнение формы через макрос VBA, получается, что данные в поля вставились, а проверка полей не прошла и приходится в каждое поле вводить хотя бы один символ с клавиатуры физически или применять application.sendKeys в макросе к каждому заполняемому полю, который приводит к постоянным ошибкам. В связи с этим искал способ обхода проверки полей ангуляром, наткнулся на тему, где описывалось, что применением кода:
можно занести данные в форму и провести валидацию поля одновременно.
Сказать честно, пока не знаю на сколько этот способ работает, т.к. пока не удалось применить ко всем полям формы макросом VBA. Возможно, кто-нибудь сталкивался с такой задачей и поможет в ее реализации...
можно без всех этих скриптов обойтись заполняете поля формы обычным способом а потом для каждого заполненного поля генерируете событие change (автоматически отработает скрипт, назначенный на событие onchange)
Игорь, о таком методе не знал. Попытался повторить на своем примере, но, почему-то, не получилось) В моем коде на сайте у элементов нет свойства ID, поэтому приходится цепляться за свойство data-ng-model, примерно таким образом:
Попытался сделать так, но выдает ошибку. Если Вам несложно, могли бы вы на примере моего кода подсказать как можно сгенерировать событие change, думаю, смог бы применить это на оставшийся код.
UPD. Предварительно, конечно, добавил в тот же модуль, где написан скрипт, данную функцию, которая указана по Вашей ссылке выше
Игорь, спасибо за помощь! Попробовал, но в данном случае не сработало) Текст в поле вставляется, но поле все равно светится как будто не прошло валидацию. Буду смотреть еще варианты. Спасибо!