Saltar al contenido

Cómo especificar la ubicación del binario chromedriver

Esta pregunta se puede solucionar de diversas formas, sin embargo te dejamos la resolución más completa para nosotros.

Solución 1 – Selenium::WebDriver::Chrome.driver_path=

Hay un Selenium::WebDriver::Chrome.driver_path= método que permite especificar el binario de chromedriver:

require 'watir'

# Specify the driver path
chromedriver_path = File.join(File.absolute_path('../..', File.dirname(__FILE__)),"browsers","chromedriver.exe")
Selenium::WebDriver::Chrome.driver_path = chromedriver_path

# Start the browser as normal
b = Watir::Browser.new :chrome
b.goto 'www.google.com'
b.close

Solución 2: especifique :driver_path durante la inicialización del navegador

Como alternativa, también puede especificar la ruta del controlador al inicializar el navegador. Esto es un poco mejor porque no necesita tener el código Selenium, pero sería repetitivo si inicializa el navegador en diferentes lugares.

# Determine the driver path
chromedriver_path = File.join(File.absolute_path('../..', File.dirname(__FILE__)),"browsers","chromedriver.exe")

# Initialize the browser with the driver path
browser = Watir::Browser.new :chrome, driver_path: chromedriver_path

Solución 3 – Actualizar ENV[‘PATH’]

Cuando respondí originalmente esta pregunta, por alguna razón, no pude hacer que la solución anterior funcionara. La configuración del valor no parecía usarse cuando Selenium-WebDriver inició el controlador. Si bien la primera solución es el enfoque recomendado, esta es una alternativa.

Otra opción es agregar programáticamente el directorio deseado a la ruta, que se almacena en el ENV['PATH']. Puede ver en Selenium::WebDriver::Platform que el binario se encuentra al verificar si el ejecutable existe en alguna de las carpetas en la ruta (desde la versión 2.44.0):

def find_binary(*binary_names)
  paths = ENV['PATH'].split(File::PATH_SEPARATOR)
  binary_names.map!   if windows?

  binary_names.each do |binary_name|
    paths.each do |path|
      exe = File.join(path, binary_name)
      return exe if File.executable?(exe)
    end
  end

  nil
end

Para especificar la carpeta que incluye el binario, simplemente necesita cambiar el ENV['PATH'] (para agregar el directorio):

require 'watir'

# Determine the directory containing chromedriver.exe
chromedriver_directory = File.join(File.absolute_path('../..', File.dirname(__FILE__)),"browsers")

# Add that directory to the path
ENV['PATH'] = "#ENV['PATH']#File::PATH_SEPARATOR#chromedriver_directory"

# Start the browser as normal
b = Watir::Browser.new :chrome
b.goto 'www.google.com'
b.close

En Selenium webdriver 3.x configuraciones, cambiar:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => "binary" => )
Capybara::Selenium::Driver.new(app, :browser => :chrome, :driver_path => , :desired_capabilities => caps)

ruta_del_controlador: Definir la ruta a la página de chromedriver chromedriver

binario: Defina la ruta a la página de cromo de la aplicación binaria de Chrome. Puede usar un portátil Chrome para usar diferentes versiones de Chrome.

Reseñas y puntuaciones del tutorial

Si conservas alguna vacilación y capacidad de arreglar nuestro escrito eres capaz de ejecutar una explicación y con placer lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *