Ubuntu 18.04 LTS Ruby 2.6.5 selenium-webdriver 3.142.7
Lorsque vous utilisez sélénium-webdriver avec ruby, si vous placez le fichier du pilote dans le répertoire où se trouve le chemin sous linux, vous pouvez utiliser le pilote sans spécifier le chemin du pilote. Je vais résumer la méthode avec des notes à ce moment-là.
Cette fois, nous utiliserons le pilote Chrome comme exemple. À partir de ce qui suit, continuez en supposant que le pilote est installé.
Tout d'abord, regardez les variables d'environnement pour voir quels répertoires se trouvent dans votre chemin.
$ printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Les répertoires qui se trouvent dans le chemin sont affichés, séparés par ":". Cette fois, j'ai mis le fichier du pilote dans "usr / local / bin".
/usr/local/bin$ ls
chromedriver
Si vous appelez le pilote chrome avec du sélénium dans cet état, vous pouvez l'utiliser sans spécifier le chemin.
test.rb
require 'selenium-webdriver'
d = Selenium::WebDriver.for :chrome
d.get('http://****')
Si le nom du fichier du pilote n'est pas "pilote chrome", une erreur se produira lors de l'exécution. J'ai installé le pilote ver.83, donc je l'ai enregistré comme "chromedriver83" lors de l'installation du pilote, mais je suis tombé sur une erreur.
/usr/local/bin$ ls
chromedriver83
Erreur lors de l'exécution du script
Unable to find chromedriver. Please download the server from (Selenium::WebDriver::Error::WebDriverError)
On me dit que je ne trouve pas le pilote chrome
Vous pouvez utiliser un nom de fichier différent tant que vous spécifiez le chemin du pilote dans le script.
test.rb
require 'selenium-webdriver'
Selenium::WebDriver::Chrome::Service.driver_path = '/usr/local/bin/chromedriver83'
d = Selenium::WebDriver.for :chrome
d.get('http://****')
Au fait, avec cette méthode, peu importe si le chemin est passé ou non.
Recommended Posts