私はホストOSとしてUbuntu 10.04、ゲストOSとしてWindows 7を使用しています。セレンSelinum サーバーが Windows 7 ゲスト OS 上で起動されている Ubuntu Linux OS でテストします。ゲスト OS では、 として Selenium サーバーにアクセスできますhttp://127.0.0.1:4444/wd/hub
。ただし、ホスト OS からはアクセスできません。
オンラインで説明されている別の解決策を試してみましたが、この組み合わせはまれなようで、どの回答も絞り込むことができませんでした。私が見たほとんどのものは、ホストからの IP アドレスを 10.0.2.2 として使用するというもので、http://10.0.2.2:4444/wd/hub
ホスト OS から試してもほとんどうまくいきませんでした。
答え1
仮想OSのIPアドレスを使用する必要があります。ゲストとしてWindows 7を使用する場合は、始めると入力しcmd
て を押しますEnter。IPCONFIG
と入力して を押しますEnter。 を探してIPv4 Address
、それを IP アドレスの代わりに使用します。
問題は、各デバイス (物理または仮想) が接続するためにネットワーク上で独自の IP アドレスを必要とすることです。デフォルト モードでは、VirtualBox は仮想マシンに独自のアドレスとアドレス範囲を割り当て、ホストとの接続を「ブリッジ」してインターネット アクセスを取得します。これがすべてです10.0.2.2
。ただし、アドレスは異なる可能性があるため、上記のように二重チェックすることをお勧めします。
答え2
現在発生しているエラーは、ゲストがホストと通信できるものの、コールバックに間違った IP アドレスを登録していることです。localhost / 127.0.0.1 を使用すると、Selenium ノードとグリッド インスタンスにローカル ポート転送を使用するように指示できます。
NAT ネットワークを使用するようにゲスト VM を構成し、ポート 5555 とポート 4444 のポート転送を追加します。両方の IP アドレスを空白のままにするか、0.0.0.0 に設定します。また、ポート 80 を転送して、ホストがゲスト Web サーバーを認識できるようにすることもできます。NAT を使用する場合、ゲスト マシンでは、IP アドレス 10.0.2.2 がホスト マシンと通信するための IP アドレスです。コマンドは次のとおりです。
ホストマシン(ハブとして)
java -jar selenium-server-standalone.jar -role hub -port 4444
ゲストマシン(ノードとして)
java -jar selenium-server-standalone.jar -role node -host 127.0.0.1 -port 5555 -hub http://10.0.2.2:4444/grid/register
modern.ie Windows 仮想マシンの場合、特に Internet Explorer のセキュリティ設定を必ず構成してください。ガイドはここにあります:
http://elgalu.github.io/2014/run-protractor-against-internet-explorer-vm/