Ответ 1
Я получил ту же ошибку, пожалуйста, скачайте последнюю версию ChromeDriver и/или обновите версию браузера Chrome, и она будет работать нормально :)
https://chromedriver.storage.googleapis.com/index.html?path=2.36/
При отправке ключей я получаю следующую ошибку.
Сообщение результатов:
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?
Есть идеи?
Я получил ту же ошибку, пожалуйста, скачайте последнюю версию ChromeDriver и/или обновите версию браузера Chrome, и она будет работать нормально :)
https://chromedriver.storage.googleapis.com/index.html?path=2.36/
После обновления браузера 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, которые помогают мне решить проблему.
Решение:
Загрузите и настройте последний хромограф (v2.36). Для настройки chromedriver (на Ubuntu) выполните следующие действия...
export PATH = $ PATH: /usr/local/bin
хромированная решетка --version
он покажет версию хромированного ребра, которую вы только что установили.
Примечание. Если хромированная решетка уже установлена и настроена, просто замените существующий файл драйвера и если вы не знаете, где уже хранятся двоичные файлы Chromedriver, попробуйте найти файл, используя следующую команду
sudo find -H / -type f -iname chromedriver
Это связано с обновлением версии браузера Chrome с 64.xx до 65.xx
Теперь у вас есть 2 варианта успешного тестирования.
Обновите свой браузер Chrome до предыдущей версии и со старым хромированным рекордером, который у вас есть сейчас.
Обновите версию Chromedriver до версии 2.36 с обновленным браузером Chrome.
перейдите на страницу https://chromedriver.storage.googleapis.com/index.html?path=2.36 и загрузите новый хромированный рекордер.
Вариант 2 лучше.
Замените свой ChromeDriver.exe последней версией. То же самое можно легко загрузить с Google.
Также лучше сделать это автоматически с помощью менеджера webDriver, как описано ниже - 1. Добавьте зависимость Mvn в POM вашего проекта:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>${webdrivermanager.version}</version>
<scope>test</scope>
</dependency>
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
Необходимо обновить хромированный реверс: в консоли запустите: chromedriver-update 2.36
Ошибка говорит все:
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
Таким образом, существует явное несоответствие между версией ChromeDriver (v2.33) и версией браузера Chrome (v65.0)
@Test
.Если вы находитесь на Mac:
brew upgrade selenium-server-standalone
brew upgrade chromedriver
если указанные выше два не установлены:
brew install selenium-server-standalone
brew install chromedriver
Я запускаю Protractor и столкнулся с той же проблемой.
Решение в моем случае было довольно простым.
$ npm update protractor -g
$ webdriver-manager update
Если вы находитесь на последнем стабильном Google Chrome (например, 67), я рекомендую:
brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver
Этот набор команд удалит текущий хромированный рекордер, проверяет наличие обновлений и устанавливает последние найденные (например, 2.40).
Я запускаю Protractor (webdriver-manager) с Selenium в среде Windows, и мне пришлось сделать следующее:
webdriver-manager update --versions.chrome="2.36"
(Это скачало новый Chromedriver на правильный путь, но не включил его в транспортир.)%userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json
и chromedriver
значение chromedriver
с 2.32
до 2.36
.chromedriver_2.32.exe
из %userprofile%\AppData\Roaming\npm\node_modules\protractor\selenium
для хорошей оценки (не уверен, что это было необходимо).Или:
Когда появилось другое обновление Chromedriver, я больше не мог обновлять этот путь. Настройки конфигурации по-прежнему ожидали старого пути и имени файла, и я не мог понять, где изменить этот параметр. Поэтому я просто переименовал последний хромированный рекордер в "chromedriver.exe" и застрял в C:\Windows\system32 (на который всегда ссылается PATH). Сырой, но эффективный.
В моем случае команда, которой я нахожусь в точках селена, к определенному файлу хромированной решетки, который у нас был. Чтобы заставить Selenium использовать обновленный хромированный реверс, я сначала установил его с варевом, а затем создал символическую ссылку, в которой Selenium ищет ее:
brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver
На случай, что это может быть полезно для кого-то, мне нужен дополнительный шаг:
Я нахожусь на MacOS X. Я сделал
brew upgrade chromedriver
bundle exec chromedriver-upgrade
У меня установлен хром-хелпер-жемчуг, но он спрятан и требует префикса "bundle exec" или оболочка не может найти команду.
Вышеупомянутая проблема решена.
Как уже упоминалось другими, последний хромограф помогло. Если вы скачали драйвер вручную и хотите сообщить appium, чтобы использовать новый хромированный рекордер, вы можете сделать это с помощью этой команды:
appium --chromedriver-executable/path/to/driver/chromedriver....
Если вы используете плагин gulp-protractor
, обязательно обновите его.
Я не знаю, если вы все еще на этом, но я получил аналогичную ошибку. У меня в PATH была последняя версия chromedriver, и Google Chrome был обновлен. Я запускаю Python 3.6 на Windows 10 x64 бит. Что я получал, пытаясь выбрать значение из выпадающего меню на веб-странице. Странно было то, что он правильно выбрал бы значение раскрывающегося списка, и страница была бы обновлена красиво, но я все равно получил бы эту глупую ошибку, и мой сценарий завис бы. Поэтому я просто создал для него обработчик ошибок исключения, потому что, как я уже сказал, он правильно выбрал выпадающее значение, поэтому я просто хотел обойти это глупое сообщение об ошибке:
# select by value
try:
select.select_by_value('100')
except:
pass
надеюсь, кто-то найдет это полезным.
Проблема из-за несоответствия в Chromeriver и Chrome версии браузера. Ниже ссылка указывает версии chromedriver, поддерживающие версию браузера Chrome.