#ruby #selenium-chromedriver
#рубин #селен #селен-хромированный привод
Вопрос:
Я работаю над своим проектом, где мне нужно нажать кнопку с помощью Селена. Но когда я запускаю его, он выдает мне эту ошибку
/home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service_manager.rb:139:in `connect_until_stable': unable to connect to /usr/bin/chromedriver 127.0.0.1:9515 (Selenium::WebDriver::Error::WebDriverError) from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service_manager.rb:57:in `block in start' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/socket_lock.rb:41:in `locked' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service_manager.rb:54:in `start' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:84:in `launch' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:374:in `service_url' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:311:in `create_bridge' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:74:in `initialize' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:47:in `new' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:47:in `for' from /home/yarikhrom/.rvm/gems/ruby-3.0.2/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver.rb:88:in `for' from test.rb:3:in `lt;maingt;'
Код:
require 'selenium-webdriver'driver = Selenium::WebDriver.for:chromedriver.get "https://www.google.com/"driver.find_element(:xpath, '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[3]/center/input[2]').click
Как я могу это исправить? Я обнаружил, что могут возникнуть некоторые проблемы с зависимостями от Google, но я явно не понимаю, как это изменить
Комментарии:
1. Где код?
2. Добавлено, нажав кнопку на www.google.com
3. Успешно ли запускается браузер Chrome, инициированный ChromeDriver?
4. Как это проверить?
Ответ №1:
Два очка с моей стороны.
Во-первых, проверьте chromedriver.exe
, существует ли в c:ruby30bin
, если вы используете другую версию ruby, то вы найдете ruby соответственно, например ruby26 ruby 27 и т. Д.
Вы выглядите так, словно используете операционную систему Linux, а? Если да, проверьте, находится ли chromedriver.exe
он на правильном пути.
Второй выход,
driver.find_element(:xpath, '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[3]/center/input[2]').click
это старый стиль, сейчас он не работает.
Используйте этот код
driver.find_element(xpath: '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[3]/center/input[2]').click
Комментарии:
1. Да, я использую Ubuntu 20.04 (если я правильно помню). Я искал chromedriver.exe в моем WSL, но ничего не нашел. Как его правильно установить и в каком каталоге?
2. Я не знаю, как это сделать в Linux, но в вашем сообщении об ошибке говорится, что он ищет здесь
usr/bin/chromedriver
, поэтому попробуйте найти его там.3. Да, я нашел файл с именем chromedriver в usr/bin. Что я должен с этим делать?
4. Тогда я не знаю, должно ли это сработать. Данный вами код работает для меня в Windows.