2017-07-04 2 views
0

J'utilise Selenium 3.4, Geckodriver 0.17.
je lance FirefoxDriver en utilisant le code ci-dessousSelenium GeckoDriver obtenir IP et le numéro de port de l'instance de pilote lancé

System.setProperty("webdriver.gecko.driver", "geckodriver.exe"); 
    FirefoxDriver driver = new FirefoxDriver(); 
    driver.get("http://www.bing.com"); 
    System.out.println(driver.getSessionId()); 

Est-il possible que je peux obtenir l'adresse IP et le port de l'instance du pilote lancé?

Les données que je veux sont imprimées dans les journaux.

1499170600204 geckodriver INFO Listening on 127.0.0.1:38840 
1499170601127 geckodriver::marionette INFO Starting browser C:\Program Files\Mozilla Firefox\firefox.exe with args ["-marionette"] 
[GFX1]: Potential driver version mismatch ignored due to missing DLLs igd10umd32 v= and igd10iumd32 v= 
1499170608388 Marionette INFO Listening on port 12793 
Jul 04, 2017 5:46:48 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Detected dialect: W3C 

La première ligne de sortie 127.0.0.1:38840 imprime les informations que je veux. Je ne veux pas analyser le journal car je vais courir des pilotes en parallèle.

+0

vous pouvez utiliser https://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html – Edwin

+0

@Edwin Comment est-ce censé me aider? – Madhan

+0

avec 'getAddress' vous pouvez obtenir l'ip et vérifier le' getLocalHost' ou 'getHostName' pour plus de choses – Edwin

Répondre

0

Le pilote RemoteWebDriver a la méthode getCommandExecutor.

Qui peut être TypeCasté à HttpCommandExecutor et getAddressOfRemoteServer() renvoie l'URL.

HttpCommandExecutor ce = (HttpCommandExecutor) driver.getCommandExecutor(); 
System.out.println(ce.getAddressOfRemoteServer());