IE9 Автоматизация нажатия кнопок - PullRequest
0 голосов
/ 23 января 2012

Некоторые из моих поставщиков требуют, чтобы я размещал заказы через их веб-сайты.Я автоматизировал процесс, нажав кнопку в моей программе обработки заказов.Моя программа откроет браузер по умолчанию (теперь IE 9 после того, как мой предыдущий компьютер умер), перейдите на страницу заказа веб-сайта поставщика, заполните поля информации и затем нажмите кнопку отправки формы.

 this.oIE.Document.all.ctl00_MainContent_Login1_LoginButton.click()

илиthis.oIE.Document.getElementById ("ctl00_MainContent_Login1_LoginButton"). click ()

Проблема возникает только в том случае, если кнопка имеет значение "onclick".

В IE8 щелчок () событие выполняет код onclick.В IE9 событие click возвращает универсальный объект.Он не запускает код onclick.

Я пробовал x.FireEvent ("click"), но это также возвращает объект.Похоже, что значения IE9 DOM onclick не могут быть выполнены внешними программами.

Моя программа отлично работает на IE8 (я использую Chrome, IE, FireFox с различными настройками и логинами, поэтому изменение браузера по умолчанию на самом деле не вариантКроме того, некоторые из моих поставщиков требуют, чтобы я использовал IE, поскольку их сайты не работают в других браузерах.)

Буду признателен за любые советы по постоянному исправлению.

Ответы [ 2 ]

2 голосов
/ 02 октября 2012

Я мог бы написать ваш вопрос дословно и бороться с этим так долго, как вы.

Глупая, глупая проблема: теперь для функции click() требуется параметр: click(1)

w = this.oIE.Document
z = w.getElementById("btn-header-input-signin")
z.click(1)

Тщательно не проверили это, но это работает на странице входа Почтовой службы США.

0 голосов
/ 23 января 2012

Функция, вызываемая при нажатии кнопки, предположительно будет иметь одинаковое имя в каждом браузере.Можете ли вы вызвать эту функцию вместо этого?

Имитация нажатия кнопки кажется ненужным шагом.Кроме того, вы пробовали jQuery?Подобные библиотеки пытаются сгладить различия между браузерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...