Ошибка в IE препятствует запуску моего макроса VBA - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть макрос VBA для извлечения данных с веб-страницы, который работал отлично в течение последних нескольких месяцев.Сегодня утром это перестало работать.Проблема в том, что когда я нажимаю кнопку, чтобы отправить форму, ничего не происходит.Я пытался вручную нажать кнопку без автоматизации, но ничего не произошло.

Я посмотрел его и нашел старую ветку, описывающую проблему: Ошибка отправки только для IE11 .

Итак, похоже, это известная проблема с IE, но этомне не очень помогает.Любое предложение о том, что я могу сделать, чтобы мой макрос снова заработал?Каждый учебник, который я пытался прочитать, использует IE для автоматизации, поэтому я застрял здесь.

1 Ответ

0 голосов
/ 06 сентября 2018

Следующее работает с использованием Chrome и selenium basic . После установки selenium basic вам нужно зайти в VBE> Инструменты> Ссылки и добавить ссылку на Selenium Type Library. Затем вы удалили IE из уравнения. Selenium basic поддерживает ряд других браузеров, включая FireFox и Opera.

Option Explicit
Public Sub EnterInfo()
    Dim d As WebDriver, ele As Object, t As Date
    Set d = New ChromeDriver
    Const URL = "https://mypost.israelpost.co.il/%D7%9E%D7%A2%D7%A7%D7%91-%D7%9E%D7%A9%D7%9C%D7%95%D7%97%D7%99%D7%9D"
    Const WAIT_TIME_SECS As Long = 10

    With d
        .Start "Chrome"
        .get URL

        With .FindElementById("ItemTraceForm")
            .FindElementById("ItemCode").SendKeys 55671234
            .FindElementById("btn-ItemCode").Click
            t = Timer
            Do
                DoEvents
                If Timer - t > WAIT_TIME_SECS Then Exit Do
                Set ele = .FindElementById("result", timeout:=3000)
            Loop While ele.Text = vbNullString
            Debug.Print ele.Text
        End With

        'Other code....
        Stop                                     '<=Delete me later
        .Quit
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...