Ich verwende ein Ubuntu 10.04-Betriebssystem als Host und Windows 7 als Gastbetriebssystem. Ich möchte einigeSelenTest auf meinem Ubuntu Linux-Betriebssystem, dessen Selinum-Server auf meinem Windows 7-Gastbetriebssystem gestartet ist. Auf dem Gastbetriebssystem kann ich auf den Selenium-Server zugreifen http://127.0.0.1:4444/wd/hub
. Von meinem Hostbetriebssystem aus kann ich jedoch nicht darauf zugreifen.
Ich habe eine andere, online beschriebene Lösung ausprobiert, aber diese Kombination schien selten zu sein, und ich habe mich nie für eine Lösung entschieden. Die meisten Lösungen, die ich gesehen habe, waren die Verwendung der IP-Adresse 10.0.2.2 vom Host aus, was dazu führte, dass ich es http://10.0.2.2:4444/wd/hub
vom Host-Betriebssystem aus kaum erfolglos versuchte.
Antwort1
Sie müssen die IP-Adresse des virtuellen Betriebssystems verwenden. Klicken Sie für Windows 7 als Gast aufStart, geben Sie ein cmd
und drücken Sie Enter. Geben Sie ein IPCONFIG
und drücken Sie Enter. Suchen Sie nach IPv4 Address
, und verwenden Sie dies anstelle der IP-Adresse.
Das Problem besteht darin, dass jedes Gerät (physisch oder virtuell) eine eigene IP-Adresse im Netzwerk benötigt, um eine Verbindung herzustellen. Im Standardmodus weist VirtualBox den virtuellen Maschinen eine eigene Adresse und einen eigenen Adressbereich zu und „überbrückt“ die Verbindungen mit dem Host, um Internetzugang zu erhalten. Hier 10.0.2.2
kommt das Ganze ins Spiel. Ihre Adresse kann jedoch anders sein, deshalb ist es gut, dies wie oben beschrieben noch einmal zu überprüfen.
Antwort2
Der Fehler, den Sie gerade haben, besteht darin, dass der Gast zwar mit dem Host kommunizieren kann, aber die falsche IP-Adresse für den Rückruf anmeldet. Durch die Verwendung von localhost / 127.0.0.1 können Sie Selenium-Knoten- und Grid-Instanzen anweisen, sich auf die lokale Portweiterleitung zu verlassen.
Konfigurieren Sie die Gast-VM für die Verwendung von NAT-Netzwerken und fügen Sie eine Portweiterleitung für Port 5555 und Port 4444 hinzu. Lassen Sie beide IP-Adressen leer oder setzen Sie sie auf 0.0.0.0. Sie können auch Port 80 weiterleiten, damit Ihr Host den Gast-Webserver sehen kann. Bei Verwendung von NAT ist die IP-Adresse 10.0.2.2 auf dem Gastcomputer die IP-Adresse für die Kommunikation mit dem Hostcomputer. Hier sind die Befehle:
Host-Rechner als Hub
java -jar selenium-server-standalone.jar -role hub -port 4444
Gastcomputer als Knoten
java -jar selenium-server-standalone.jar -role node -host 127.0.0.1 -port 5555 -hub http://10.0.2.2:4444/grid/register
Bei den modernen virtuellen Windows-Maschinen müssen Sie unbedingt die Sicherheitseinstellungen konfigurieren, insbesondere für den Internet Explorer. Eine Anleitung dazu finden Sie hier:
http://elgalu.github.io/2014/run-protractor-against-internet-explorer-vm/