Получение KeyNotFoundError Ключ словаря не найден: состояние при использовании метода .click - PullRequest
1 голос
/ 07 июня 2019

В настоящее время я пытаюсь изучить VBA в Excel, и я написал простую процедуру, при которой я должен иметь возможность запускать Chrome и нажимать кнопку. Проблема в том, что я получаю Ошибка времени выполнения '0': ключ словаря KeyNotFoundError не найден: состояние всякий раз, когда я пытаюсь использовать метод .click.

Я скачал Selenium Basic со следующего сайта https://florentbr.github.io/SeleniumBasic/ активировал ссылку в VBA и скачал последнюю версию chromedriver

Sub driver()

    Dim driver As New Selenium.WebDriver
    Set driver = New Selenium.WebDriver

    driver.Start "chrome"
    driver.Get "http://www.google.com"
    Set Element = driver.FindElementByName("btnI")
    Element.Click

End Sub

Это простой код, где я запускаю Chrome, захожу в Google и нажимаю кнопку «Мне повезет».

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

В последней версии Chrome выдается ошибка "KeyNotFoundError Dictionary не найден: статус".

Попробуйте заменить Chromedriver на версию 2.46. Вот ссылка: https://chromedriver.storage.googleapis.com/index.html?path=2.46/

Ниже приведен код, который я пробовал, и он отлично работал для меня. Дайте нам знать, если это решение сработало для вас! :)

   Sub driver()

        Dim driver As New Selenium.WebDriver
        Set driver = New Selenium.WebDriver

        driver.Start "chrome"
        driver.Get "http://www.google.com"
        driver.FindElementByCss("#tsf > div:nth-child(2) > div > div.FPdoLc.VlcLAe > center > input[type=submit]:nth-child(2)").Click

    End Sub
0 голосов
/ 07 июня 2019

Быстрый тест для запуска этой кнопки, и мне нужно было использовать javascript

driver.ExecuteScript "document.querySelector('[name=btnI]').click();"

Если ошибка остается, я предлагаю проверить chromedriver.exe - это правильная версия для вашего браузера Chrome , выполнить переустановку селена и проверить ссылку на тип селена, как обычно в VBE.

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