Linuxでノード5.10.0を使用しています。スクリプトの実行に問題があり、以下に表示されています
[davea@mydevbox mydir]$ node SkyNet.js
Validation Complete
/home/davea/node_modules/Selenium-webdriver/chrome.js:185
throw Error(
^
Error: The ChromeDriver could not be found on the current PATH. Please download the latest version of the ChromeDriver from http://chromedriver.storage.googleapis.com/index.html and ensure it can be found on your PATH.
at Error (native)
at new ServiceBuilder (/home/davea/node_modules/Selenium-webdriver/chrome.js:185:13)
at getDefaultService (/home/davea/node_modules/Selenium-webdriver/chrome.js:362:22)
at Driver (/home/davea/node_modules/Selenium-webdriver/chrome.js:771:34)
at Builder.build (/home/davea/node_modules/Selenium-webdriver/builder.js:464:16)
at Object.<anonymous> (/home/davea/mydir/js/Optimus.js:14:4)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
Chromedriverがパス上にないということですが、ここから適切なバージョンをダウンロードしただけです (http://chromedriver.storage.googleapis.com/index.html?path=2.9/ 、そしてあなたが見ることができるように、それは私のPATH上にあります
[davea@mydevbox mydir]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/davea/bin:/home/davea/bin:/usr/lib/chromedriver
次の権限を持つ…
[davea@mydevbox mydir]$ ls -al /usr/lib/chromedriver
-rwxr-xr-x 1 davea evotext 5503600 Feb 3 2014 /usr/lib/chromedriver
そのため、このエラーが発生する理由について混乱しています。どんな助けでもありがたいです-デイブ
ニールズの答えに追加するには、バベルを使用していない人のために
npm install -g chromedriver
PATHエラーが解決しない場合は、ローカルプロジェクトの依存関係に保存するだけです
npm install --save chromedriver
let webdriver = require('Selenium-webdriver'); let chrome = require('Selenium-webdriver/chrome'); let chromedriver = require('chromedriver'); chrome.setDefaultService(new chrome.ServiceBuilder(chromedriver.path).build());
同じ問題がありました。 chromedriverパッケージからパスを取得することで解決しました。
これが私のコードです:
import webdriver from 'Selenium-webdriver';
import chrome from 'Selenium-webdriver/chrome';
import chromedriver from 'chromedriver';
chrome.setDefaultService(new chrome.ServiceBuilder(chromedriver.path).build());
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
これはこの回答のコードに基づいています: Passing require( 'chromedriver).path to direct to Selenium-webdriver
少し遅れるかもしれませんが、誰かがこの問題に遭遇した場合、私は次のことを行いました:
最初の_npm install -g chromedriver --save
_
次に、この行をコードの上に追加しますrequire('chromedriver');
ここにデモがあります:
_require('chromedriver');
var webdriver = require('Selenium-webdriver');
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('https://google.com');
_
詳細については、ここにアクセスできます: https://www.npmjs.com/package/chromedriver
私の小さなSelenium-webdriver
テストでは、オンラインとここで調べた後、次の手順を実行しました。
npm install Selenium-webdriver
npm install chromedriver
npm install geckodriver
と開いたファイルlibrary.jsとnpm init
とnode library.js
を実行しました(以下のソースコード)Error:
(node:14212) UnhandledPromiseRejectionWarning: NoSuchSessionError: invalid session id
同じではないchromedriverバージョンに関連するいくつかの長いエラー。 chromeブラウザのバージョンをブラウザで手動で確認しました。それはversion 73
でしたが、私の間違いはchromedriver version 74.0
をダウンロードしたものです。https://chromedriver.storage.googleapis.com/index.html?path=73.0.3683.68/
ダウンロードに移動し、~/Downloads
からダウンロードしてください。~/Downloads
フォルダーのterminal
を開きます。USER@DESKTOP:~/Downloads$ unzip ~/Downloads/chromedriver_linux64.Zip -d ~/Downloads
~/Downloads
フォルダーにchromedriver
の生ファイルを取得します。ChromeDriver 73.0.3683.68
ファイルを2つの場所に移動しました-システム内のusr/local/bin
とusr/bin
。usr/local/bin
にはすでにchromedriver
ファイルがありました。ファイルを移動するには-USER@DESKTOP:~/Downloads$ Sudo mv -f ~/Downloads/chromedriver /usr/local/bin/chromedriver
とUSER@DESKTOP:~/Downloads$ Sudo mv -f ~/Downloads/chromedriver /usr/bin/chromedriver
は、ファイルchromedriverを最初の場所から別の場所に移動することを意味し、同じ場所にある同じ名前の場所にあるファイルをすべて置き換えます。
最後にやったのは。 vscodeを閉じて再起動します。そして私のコードnode library.js
を実行しました。 chrome私にとってはブラウザです。
ソースコード:LIBRARY.JS
var webdriver = require('Selenium-webdriver');
var By = webdriver.By;
var until = webdriver.until;
var driver = new webdriver.Builder().forBrowser('chrome').build();
driver.get('https://www.google.com');