IE9 Автоматизация нажатия кнопки

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

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

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

Проблема возникает только тогда, когда кнопка имеет значение «onclick».

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

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

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

Любые советы по постоянному исправлению для этого будут оценены.


person user1165593    schedule 23.01.2012    source источник


Ответы (2)


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

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

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

Не проверял это полностью, но он работает на странице входа в Почтовую службу США.

person BTH    schedule 02.10.2012

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

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

person mvrak    schedule 23.01.2012
comment
JQuery отлично подходит, если вы разрабатываете HTML для отображения в браузере. Но моя программа автоматизирует человека, сидящего за компьютером, а не веб-сайт, который показывается человеку. Я заполняю различные формы на сайтах других людей, у меня нет доступа к HTML, кроме просмотра исходного кода страницы. Знаете ли вы, как выполнить код onclick через DOM? - person user1165593; 24.01.2012
comment
В итоге я установил режим совместимости IE9 для веб-сайтов поставщиков с этой проблемой. Надеюсь, я вспомню об этом, когда они пересмотрят свои сайты, и он снова сломается. (Как новичок с этим логином, stackoverflow не позволит мне ответить на мои вопросы в течение 8 часов после постановки вопроса.) - person user1165593; 24.01.2012