現在、私はWindows 7のfirefoxのためのNodeJSベースのテストのために次の設定をしています
Firefox 61.0.1
"geckodriver": "^1.11.0",
"selenium-webdriver": "^4.0.0-alpha.1"
しかし、私がコマンドを実行すると
let driver = await new webDr.Builder().withCapabilities(webDr.Capabilities.firefox()).build();
私はエラーを得る
“SessionNotCreatedError:予想されるブラウザのバイナリロケーションですが、デフォルトロケールではバイナリが見つからず、
‘moz:firefoxOptions.binary’機能は提供されず、コマンドラインにはバイナリフラグが設定されていません”
これは、ほとんどのチュートリアルでPATH変数を私のウィンドウに設定できなかったためです。このようにしてください。
“クロムドライバとgeckodriverドライバの場所をシステムPATH変数に追加します。これはハードディスクのルートからドライバを含むディレクトリへの絶対パスでなければなりません。たとえば、Mac
OS Xマシンを使用している場合、名前はボブで、我々のホームフォルダのルートにドライバを置くと、パスは/
Users/bobになります。
しかし、当社のラップトップは以下の変更を制限しています:システムフォルダ、レジストリ、残念ながら.. PATH変数。
PATH変数を変更せずにFirefoxのバイナリをどのように指すことができますか?
私がfirefoxdriverに切り替えると、私はまだ同じディレマを持っていますか?
UPDATE:
私はfirefoxファイルのドキュメントに基づいて次のことを試みました:
const firefox = require('selenium-webdriver/firefox');
let options = new firefox.Options().setBinary(os.homedir() + '/AppData/Local/Mozilla Firefox');
let driver = new webDr.Builder()
.forBrowser('firefox').setFirefoxOptions(options).build();
しかし、エラーは今言う…
“SessionNotCreatedError:ブラウザ(パス)を起動できませんでした:Permission
Denied”
どうすればこの問題を回避できますか?
私は答えを見つけた オプションで表示されます。パスだけでなく、 firefox.exe
自体を指すはずです
const firefox = require('selenium-webdriver/firefox');
let options = new firefox.Options().setBinary(os.homedir() + '/AppData/Local/Mozilla Firefox/firefox.exe');
let driver = new webDr.Builder()
.forBrowser('firefox').setFirefoxOptions(options).build();