ChromeブラウザでWebDriverを実行すると、ブラウザが正しく起動しても「ローカル接続のみが許可されます」というメッセージが表示されます


85

WebDriverを使用してChromeブラウザを実行すると、コンソールに次のメッセージが表示されます。解決方法を教えてください。

"ポート22582でChromeDriver(v2.10.267521)を起動しています" "ローカル接続のみが許可されています。"

これが私のサンプルコードです:

public class Browserlaunch {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32   \\chromedriver.exe");
        WebDriver driver = new ChromeDriver() ;
        driver.get("http://webdunia.com");
        driver.close();
        driver.quit();
    }
}

回答:


96

これは情報メッセージです。メッセージが伝えているのは、chromedriver実行可能ファイルはローカルマシンからの接続のみを受け入れるということです。

ほとんどのドライバー実装(確かにChromeドライバーとIEドライバー)はHTTPサーバーを作成します。言語バインディング(Java、Python、Ruby、.NETなど)はすべて、JSON-over-HTTPプロトコルを使用してドライバーと通信し、ブラウザーを自動化します。HTTPサーバーは、言語バインディングによって生成されたHTTP要求を開いているポートでリッスンしているだけなので、言語バインディングによって開始されたHTTPサーバーへの接続は、同じホスト上の他のプロセスからのみ許可されます。この制限は、ブラウザが外部のWebサイトに接続できる場合には適用されないことに注意してください 。むしろ、他のWebサイトからの着信接続を防ぐだけです。


私の場合、ブラウザを開いてページが空になった後、テストを停止します。URLでNot secure data:, だからその意味でこれは問題です。理由はわかりますか?
SMPH

したがって、driver.get(など...)を使用してセレンとのhttps通信を使用するWebサイトにアクセスした場合、そのサイトに送信される情報はhttpsで暗号化されますか?
マイクサンドストローム

この回答で言及されているHTTP(保護されていない)通信は、言語バインディング(Java、C#、PythonなどのSeleniumコード)とブラウザードライバー(chromedriver、geckodriverなど)の間です。ブラウザとウェブサイト間の通信は変更されていません。ブラウザでHTTPSを使用している場合でも、ブラウザとWebサーバー間の通信は暗号化されている必要があります。
JimEvans

同じ問題があります:/この問題は修正されましたか?
user3430861

13

まったく同じエラーが発生していました。私は今日この問題と数時間戦いました。これは、chromedriverとselenium-server-standaloneのバージョン間の不一致が原因であると思われます。config.jsファイルは、chromedriver2.9とselenium-server-standalone2.35.0を含むディレクトリを参照していました。2.10と2.42.2を参照していることを確認すると、機能しました。


13

必ずしもベストプラクティスではありませんが、私の環境は、セレンへのアクセスを必要とする複数のマシンを備えたローカルネットワークでした。

chromedriverを実行するとき、次のようなパラメータを渡すことができます。

chromedriver --whitelisted-ips=""

これは基本的にすべてのIPをホワイトリストに登録しますが、もちろん必ずしも理想的なソリューションではなく、本番環境では注意が必要ですが、詳細な警告が表示されるはずです。

ポート9515でChromeDriver2.16.333244(15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca)を起動します。すべてのリモート接続が許可されます。代わりにホワイトリストを使用してください。

せいぜい回避策ですが、機能します。

相対チェックイン


5

これは、しばらく見られなかった古いプロジェクトを修正しなければならなかったときに私に起こっていました。プロジェクトに関連付けられているchromedriverは、私のバージョンのchromeと互換性がなかったため、chromedriverを更新すると正常に機能しました。


3

これは情報メッセージです。テストスクリプトとchromedriverが同じマシン上にある場合は、「whitelisted-ips」オプションを追加できます。テストは正常に実行されます。ただし、グリッド設定でchromedriverを使用する場合、このメッセージは表示されません。


3
この仲間を追加するにはどうすればよいですか-「whitelisted-ips」。私は同じ問題を抱えています
Tanvir 2017年

2
ホワイトリストを追加する方法-ips。私はウィンドウズを使用しています。おかげで
garlapak

1

コマンドを個別にではなく、同じ端末で実行する必要がありました。

nohup sudo Xvfb :10 -ac
export DISPLAY=:10
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"

1

互換性のないバージョンのSeleniumとChromeDriverを使用すると、このエラーが頻繁に発生します。

MavenプロジェクトのSelenium3.0.1:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.0.1</version>
    </dependency>

ChromeDriver 2.27:https://sites.google.com/a/chromium.org/chromedriver/downloads


1
彼がどのように彼の問題を解決できるかを説明する必要があります。問題を特定するだけですが、これを解決するにはどうすればよいですか?たとえば、どのバージョンが互換性がありますか?
セビ2017年

1
私はこの組み合わせを使用します:selenium-java 3.0.1 + ChromeDriver 2.27(Chrome v54-56をサポート)
Vitali Nikolaenko 2017年

1

大量のログとソースコードを読み取って何時間も分析した後、ついに問題が見つかりました。そして、それを解決するのは非常に簡単です。

単一行:-whitelisted-ips =をchromeドライバー(chromeではありません!)の実行可能ファイルに渡す必要があります

あなたはいくつかの方法でそれを行うことができます:

コードからローカル/直接ChromeDriverを使用する場合は、ChromeDriverinitの前に以下の行を挿入するだけです。

    System.setProperty("webdriver.chrome.whitelistedIps", "");

リモートで使用する場合(セレンハブ/グリッドなど)、コマンドのように、ノードの起動時にシステムプロパティを設定する必要があります。

java -Dwebdriver.chrome.whitelistedIps= testClass etc...

またはJAVA_OPTSenvを渡すことでdocker

  chrome:
    image: selenium/node-chrome:3.141.59
    container_name: chrome
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=

0

ChromedriverはWebDriverです。WebDriverは、多くのブラウザーでWebアプリを自動テストするためのオープンソースツールです。Webページへの移動、ユーザー入力、JavaScriptの実行などの機能を提供します。このドライバーを実行すると、スクリプトがこれにアクセスしてGoogleChromeでコマンドを実行できるようになります。

これは、ローカルネットワークで実行されているスクリプト(Only local connections are allowed.)または外部ネットワークで実行されているスクリプト()を介して実行できますAll remote connections are allowed.。ローカル接続オプションを使用する方が常に安全です。デフォルトでは、Chromedriverはポート経由でアクセスできます9515

質問に答えるために、それは単なる情報メッセージです。あなたはそれについて心配する必要はありません。

以下に両方のオプションを示します。

$ chromedriver

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

これは、すべてのIPをホワイトリストに登録することによるものです。

$ chromedriver --whitelisted-ips=""

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
All remote connections are allowed. Use a whitelist instead!
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

-4

ブラウザドライバをインストールすることで、このエラーを解決しました。

  1. ブラウザをseleniumhq.orgWebサイトに移動します
  2. [ダウンロード]タブを選択します
  3. ページを下にスクロールして[ブラウザ]セクションに移動し、リンクをクリックして目的のドライバーをダウンロードします(例:Google Chrome Driver)
  4. ダウンロードしたファイル(たとえば、chromedriver_mac64(1).zip)をダブルクリックします。
  5. 抽出したファイル(たとえば、chromedriver)をダブルクリックします。

参照:YouTube.comでエラーを検索してください

プラットフォーム:macOS High Sierra 10.13.3

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.