Ubuntu 18.04 LTS Ruby 2.6.5 selenium-webdriver 3.142.7
Wenn Sie bei Verwendung von Selenium-Webdriver mit Ruby die Treiberdatei in dem Verzeichnis ablegen, in dem sich der Pfad unter Linux befindet, können Sie den Treiber verwenden, ohne den Treiberpfad anzugeben. Ich werde die Methode zu diesem Zeitpunkt mit Notizen zusammenfassen.
Dieses Mal verwenden wir den Chrome-Treiber als Beispiel. Gehen Sie im Folgenden davon aus, dass der Treiber installiert ist.
Sehen Sie sich zunächst die Umgebungsvariablen an, um festzustellen, welche Verzeichnisse sich in Ihrem Pfad befinden.
$ printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Die Verzeichnisse im Pfad werden durch ":" getrennt angezeigt. Diesmal habe ich die Treiberdatei in "usr / local / bin" abgelegt.
/usr/local/bin$ ls
chromedriver
Wenn Sie den Chrome-Treiber mit Selen in diesem Zustand aufrufen, können Sie ihn verwenden, ohne den Pfad anzugeben.
test.rb
require 'selenium-webdriver'
d = Selenium::WebDriver.for :chrome
d.get('http://****')
Wenn der Name der Treiberdatei nicht "Chrome-Treiber" lautet, tritt zur Laufzeit ein Fehler auf. Ich habe den Treiber ver.83 installiert und ihn bei der Installation des Treibers als "chromedriver83" gespeichert, bin jedoch auf einen Fehler gestoßen.
/usr/local/bin$ ls
chromedriver83
Fehler beim Ausführen des Skripts
Unable to find chromedriver. Please download the server from (Selenium::WebDriver::Error::WebDriverError)
Mir wurde gesagt, dass ich den Chrome-Treiber nicht finden kann
Sie können einen anderen Dateinamen verwenden, solange Sie den Treiberpfad im Skript angeben.
test.rb
require 'selenium-webdriver'
Selenium::WebDriver::Chrome::Service.driver_path = '/usr/local/bin/chromedriver83'
d = Selenium::WebDriver.for :chrome
d.get('http://****')
Bei dieser Methode spielt es übrigens keine Rolle, ob der Pfad übergeben wird oder nicht.
Recommended Posts