неизвестная ошибка: результат функции вызова отсутствует "значение" для Selenium Send Keys даже после обновления хромированной передачи

При отправке ключей я получаю следующую ошибку.

Сообщение результатов:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)

Я обновил драйвер chrome до 2,36, но все-таки мой поиск кода для 2.33?

Есть идеи?

Ответы

Ответ 1

Я получил ту же ошибку, пожалуйста, скачайте последнюю версию ChromeDriver и/или обновите версию браузера Chrome, и она будет работать нормально :)

https://chromedriver.storage.googleapis.com/index.html?path=2.36/

Ответ 2


После обновления браузера Google Chrome до версии 65.0.3325.146 (Official Build) (64-разрядная версия), я также столкнулся с той же ошибкой при отправке значений в поле ввода, вот сообщение об ошибке...

selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'

с использованием Chromedriver 2.32 и Google Chrome 65.0

Поскольку я провел некоторое исследование на том же самом, я нашел недавнюю фиксацию изменений в chrome v65 Google chrome, которые помогают мне решить проблему.

Решение:

  • Обновите Google Chrome до последней стабильной версии (в моем случае это v65 в 9/mar/2018)
  • Загрузите и настройте последний хромограф (v2.36). Для настройки chromedriver (на Ubuntu) выполните следующие действия...

    1. Извлеките загруженный zip файл.
    2. Скопируйте извлеченный файл хромированных файлов в /usr/local/bin или в место, где вы обычно храните исполняемые двоичные файлы.
    3. Добавьте тот же путь (где вы поместите файл хромированной решетки) в переменную окружения PATH как

export PATH = $ PATH: /usr/local/bin

  1. Для тестирования установки перезапустите терминал и введите эту команду

хромированная решетка --version

он покажет версию хромированного ребра, которую вы только что установили.

Примечание. Если хромированная решетка уже установлена и настроена, просто замените существующий файл драйвера и если вы не знаете, где уже хранятся двоичные файлы Chromedriver, попробуйте найти файл, используя следующую команду

 sudo find -H / -type f -iname chromedriver

Ответ 3

Это связано с обновлением версии браузера Chrome с 64.xx до 65.xx

Теперь у вас есть 2 варианта успешного тестирования.

  1. Обновите свой браузер Chrome до предыдущей версии и со старым хромированным рекордером, который у вас есть сейчас.

  2. Обновите версию Chromedriver до версии 2.36 с обновленным браузером Chrome.

    перейдите на страницу https://chromedriver.storage.googleapis.com/index.html?path=2.36 и загрузите новый хромированный рекордер.

Вариант 2 лучше.

Ответ 4

Замените свой ChromeDriver.exe последней версией. То же самое можно легко загрузить с Google.

Также лучше сделать это автоматически с помощью менеджера webDriver, как описано ниже - 1. Добавьте зависимость Mvn в POM вашего проекта:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. Теперь в вашем классе создания экземпляров Browser вместо традиционного способа для создания драйвера, то есть с помощью System.setProperty (см. ниже)...

    System.setProperty("webdriver.chrome.driver","src/test/resources/drivers/chromedriver.exe");

Используйте следующий подход:

WebDriverManager.chromedriver().setup();
webDriver = new ChromeDriver(chromeOptions);

И это все, вы сделали!

Используйте ссылки ниже для вашего reference- Что такое Browser Binary Manager, как его использовать для Selenium

или проект chkout git для same-https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency

Ответ 5

Необходимо обновить хромированный реверс: в консоли запустите: chromedriver-update 2.36

Ответ 6

Ошибка говорит все:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120

Ошибка явно жалуется на InvalidOperationException

Основная проблема - совместимость версий между используемыми вами двоичными файлами следующим образом:

Поддержка Chrome v60-62

Поддержка Chrome v64-66

  • Ваша версия Selenium Client нам неизвестна.

Таким образом, существует явное несоответствие между версией ChromeDriver (v2.33) и версией браузера Chrome (v65.0)

Решение

  • Обновление Selenium до текущих уровней Версия 3.11.0.
  • Обновите ChromeDriver до уровня ChromeDriver v2.37.
  • Храните версию Chrome между уровнями Chrome v64.x-66.x. (в соответствии с примечаниями к выпуску ChromeDriver v2.37)
  • Очистите рабочую область проекта через среду IDE и перестройте свой проект только с помощью необходимых зависимостей.
  • Используйте инструмент CCleaner, чтобы стереть все операции с ОС до и после выполнения тестового пакета.
  • Если ваша базовая версия веб-браузера/веб-клиента слишком стар, то удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию веб-браузера/веб-клиента.
  • Выполните свой @Test.

Ответ 7

Если вы находитесь на Mac:

brew upgrade selenium-server-standalone
brew upgrade chromedriver

если указанные выше два не установлены:

brew install selenium-server-standalone
brew install chromedriver

Ответ 8

Я запускаю Protractor и столкнулся с той же проблемой.

Решение в моем случае было довольно простым.

$ npm update protractor -g

$ webdriver-manager update

Ответ 9

Если вы находитесь на последнем стабильном Google Chrome (например, 67), я рекомендую:

brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver

Этот набор команд удалит текущий хромированный рекордер, проверяет наличие обновлений и устанавливает последние найденные (например, 2.40).

Ответ 10

Я запускаю Protractor (webdriver-manager) с Selenium в среде Windows, и мне пришлось сделать следующее:

  1. webdriver-manager update --versions.chrome="2.36" (Это скачало новый Chromedriver на правильный путь, но не включил его в транспортир.)
  2. Измените %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json и chromedriver значение chromedriver с 2.32 до 2.36.
  3. Удалите старый chromedriver_2.32.exe из %userprofile%\AppData\Roaming\npm\node_modules\protractor\selenium для хорошей оценки (не уверен, что это было необходимо).

Или:

Когда появилось другое обновление Chromedriver, я больше не мог обновлять этот путь. Настройки конфигурации по-прежнему ожидали старого пути и имени файла, и я не мог понять, где изменить этот параметр. Поэтому я просто переименовал последний хромированный рекордер в "chromedriver.exe" и застрял в C:\Windows\system32 (на который всегда ссылается PATH). Сырой, но эффективный.

Ответ 11

В моем случае команда, которой я нахожусь в точках селена, к определенному файлу хромированной решетки, который у нас был. Чтобы заставить Selenium использовать обновленный хромированный реверс, я сначала установил его с варевом, а затем создал символическую ссылку, в которой Selenium ищет ее:

brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver

Ответ 12

На случай, что это может быть полезно для кого-то, мне нужен дополнительный шаг:

Я нахожусь на MacOS X. Я сделал

brew upgrade chromedriver
bundle exec chromedriver-upgrade

У меня установлен хром-хелпер-жемчуг, но он спрятан и требует префикса "bundle exec" или оболочка не может найти команду.

Вышеупомянутая проблема решена.

Ответ 13

Как уже упоминалось другими, последний хромограф помогло. Если вы скачали драйвер вручную и хотите сообщить appium, чтобы использовать новый хромированный рекордер, вы можете сделать это с помощью этой команды:

appium --chromedriver-executable/path/to/driver/chromedriver....

Ответ 14

Если вы используете плагин gulp-protractor, обязательно обновите его.

Ответ 15

Я не знаю, если вы все еще на этом, но я получил аналогичную ошибку. У меня в PATH была последняя версия chromedriver, и Google Chrome был обновлен. Я запускаю Python 3.6 на Windows 10 x64 бит. Что я получал, пытаясь выбрать значение из выпадающего меню на веб-странице. Странно было то, что он правильно выбрал бы значение раскрывающегося списка, и страница была бы обновлена красиво, но я все равно получил бы эту глупую ошибку, и мой сценарий завис бы. Поэтому я просто создал для него обработчик ошибок исключения, потому что, как я уже сказал, он правильно выбрал выпадающее значение, поэтому я просто хотел обойти это глупое сообщение об ошибке:

# select by value
try:
    select.select_by_value('100')
except:
    pass

надеюсь, кто-то найдет это полезным.

Ответ 16

Проблема из-за несоответствия в Chromeriver и Chrome версии браузера. Ниже ссылка указывает версии chromedriver, поддерживающие версию браузера Chrome.

http://chromedriver.chromium.org/downloads