#ruby #google-chrome #selenium #ubuntu #watir-webdriver
#ruby #google-chrome #селен #ubuntu #watir-webdriver
Вопрос:
Я запускаю свой скрипт Ruby
require 'watir-webdriver'
b = Watir::Browser.new :chrome #<--- OFFENDING LINE
Он останавливается в терминале, и я получаю это сообщение об ошибке примерно через 25 секунд:
https://gist.github.com/anonymous/8939d7cd5bf39b7e7a36240b614985bc
Кроме того, при запуске google-chrome
с терминала я получаю это сообщение об ошибке:
[22016:22016:1017/135305:ERROR:browser_main_loop.cc(260)] Gtk: cannot open display:
И когда я запускаю xhost
, я получаю xhost: unable to open display ""
Системная информация:
Я полагаю, что я установил Chrome, однако я не уверен, но эти строки были выполнены:
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get install google-chrome-stable
chromedriver установлен и находится в /usr/local/bin
и был установлен с помощью следующих командных строк:
wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/2.9/chromedriver_linux64.zip amp;amp; sudo unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/;
watir-webdriver (0.9.3)
отображается в моем списке драгоценных камней
ruby -v
ВОЗВРАТ ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-linux]
Вопрос:
Почему я получаю эту ошибку и как я могу ее исправить?
Я могу предоставить более подробную информацию, если потребуется.
Ответ №1:
Chromedriver 2.9 очень старый. Вы хотите Chromedriver 2.24 прямо сейчас. https://sites.google.com/a/chromium.org/chromedriver/downloads
Похоже, что Chromedriver не может получить доступ к экземпляру Chrome. Вот пример того, как команда Watir делает это через командную строку: https://github.com/watir/watir/blob/master/support/travis.sh#L13-L28
Комментарии:
1. Я попробую это, но у меня сложилось впечатление, что мой сервер работает без графического интерфейса и поэтому не может открыть этот графический браузер; однако недавно я прочитал в Hacker News, что Google разрабатывает браузер без графического интерфейса. Смотрите здесь .
2. Да, я установил 2.24 и получил ту же ошибку в операционной системе.
3. Ошибка в сути говорит о Chromedriver 2.9. Если вы все еще получаете эту ошибку после установки 2.24, выполните команду «какой chromedriver», чтобы узнать, где он использует старую версию, и обновите ее.
4. Я выполняю
rvm use ruby 2.0 ; ruby /lib/form_connect.rb
, затемUsing /usr/local/rvm/gems/ruby-2.0.0-p648
появляется зеленый цвет, курсор останавливается на ~ 30 секунд, затем появляется эта ошибка:/usr/local/rvm/rubies/ruby-2.0.0-p648/lib/ruby/2.0.0/net/protocol.rb:158:in rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
5. Я знаю, я все еще получаю ту же ошибку , но с другой указанной версией. На самом деле, сегодня ошибка другая:
/lib/ruby/2.0.0/net/protocol.rb:158:in rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
. Запускchromedriver -v
возвращаетChromeDriver 2.24.417424