多くの場合と同様に、次のコマンドを使用してSeleniumサーバーを起動します。
Java -jar Selenium-server-standalone-2.21.0.jar
私たちが見つけたのは、これがSeleniumを0.0.0.0:4444で開くことです。
Started SocketListener on 0.0.0.0:4444
[USER @ BOX ~]# netstat -na | grep LISTEN | grep 4444
tcp 0 0 :::4444 :::* LISTEN
Seleniumを特定のIP(localhost)にバインドする方法はありますか?
ありがとう。
次のコマンドを使用します
Java -jar Selenium-server-standalone-2.21.0.jar -Host 192.168.1.100
ここで、192.168.1.100はホストのIPアドレスです。
これはこの問題を処理する正しい方法ではありませんが、その方法です
したがって、これにより、ポート4444の接続を外部ソースからドロップするだけで済みます。あなたは最初にページに行くことによってこれをテストすることができます
このようにサーバーを起動します
Java -jar Selenium-server-standalone-2.39.0.jar -Host 127.0.0.1 -port 4444
すべてが機能していることを確認します
http://yourexternalip:4444/wd/hub/
ページが読み込まれます。サーバーが正常に実行されているかどうか。
コマンドをディスパッチします
Sudo iptables -A INPUT -p tcp --dport 4444 -s 127.0.0.1 -j ACCEPT
Sudo iptables -A INPUT -p tcp --dport 4444 -j DROP
次に、ページをリロードします。 Webページにアクセスできなくなります(外部IPからアクセスしているため)
新しいアクセス可能なURLは
http://127.0.0.1:4444/wd/hub/
動作するはずです
繰り返しになりますが、これはより大きな問題へのバンドエイドであり、これを行うことでソースコードを変更する必要はなく、安全なシステムを維持できます。
これは、バージョンに次の修正が含まれている場合に、「-Host192.168.1.100」パラメーターを追加することで可能になります。
https://code.google.com/p/Selenium/source/detail?r=71c5e231f442
(この修正は、執筆時点では利用可能なバイナリに含まれていないため、ソースから独自にビルドする必要があります。)
リモートマシンでJava -jar Selenium-server-standalone-2.21.0.jar
を実行できます
次に、Seleniumスクリプトで、リモートで実行するWebドライバーを定義します。
Ruby
@driver = Selenium::WebDriver.for(:remote, :url => "http://specific_ip_of_remotemachine:4444", :desired_capabilities => firefox)
これはあなたが探しているものですか?
私もハブで同じ問題に直面していました。そのため、ハブをUPしようとしたときに、ハブが他のIPアドレスを指していますが、IPアドレスを確認すると、ローカルシステムで異なっていました。この問題を解決するために、次のコードを試してみましたが、機能します。
Java -jar Selenium-server-standalone-3.12.0.jar -Host 192.XXX.X.XX -role hub
そして、私のハブは私のローカルマシンのIPアドレスに登録されました。