为什么我无法连接到/usr/bin/chromedriver 127.0.0.1:9515



我正在进行我的项目,需要按下Selenium的按钮。但当我启动它时,它会给我这个错误

/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 `<main>'

代码:

require 'selenium-webdriver'
driver = Selenium::WebDriver.for:chrome
driver.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

我该怎么解决这个问题?我发现谷歌依赖性可能有一些问题,但我显然不知道如何更改

我这边有两点。

首先,检查chromedriver.exe是否存在于c:ruby30bin中。如果你使用其他版本的ruby,那么你会相应地找到ruby,比如ruby26ruby 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

我在设置WSL2时也遇到了类似的错误。通过在powershell中运行wsl --update更新到WSL的最新版本修复了此问题。

我使用的是Linux Chrome和Chromedriver,而不是Windows。我的发行版是Ubuntu 20.04。为了安装这些,我做了以下操作:

安装Chrome

sudo apt install fonts-liberation libappindicator3-1 libasound2 libgbm1 libnspr4 libnss3 libxss1 xdg-utils
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
echo 'alias chrome="google-chrome-stable"' >> ~/.bashrc
exec $SHELL

安装Chromedriver

sudo apt-get update
sudo apt-get install chromium-chromedriver

相关内容

  • 没有找到相关文章

最新更新