2017-07-04 8 views
0

私はSelenium 3.4、Geckodriver 0.17を使用しています。
私は以下のコードSelenium GeckoDriverは、起動したドライバインスタンスのIPとポート番号を取得します。

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

を使用してFirefoxDriver起動するには、私がIPと立ち上げたドライバインスタンスのポートを得ることができる方法はありますか?

ログには必要なデータが出力されます。

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 

出力127.0.0.1:38840の最初の行は、私が欲しい情報を印刷します。私はドライバを並行して実行するので、ログを解析したくありません。

+0

あなたはhttps://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html – Edwin

+0

@Edwinことを私を助けることになっている方法を使用することができますか? – Madhan

+0

と 'getAddress'を使用すると、ipを取得して、より多くのもののために' getLocalHost'または 'getHostName'をチェックすることができます – Edwin

答えて

0

RemoteWebDriverにはgetCommandExecutorメソッドがあります。

HttpCommandExecutorにタイプキャストでき、getAddressOfRemoteServer()メソッドはURLを返します。

HttpCommandExecutor ce = (HttpCommandExecutor) driver.getCommandExecutor(); 
System.out.println(ce.getAddressOfRemoteServer()); 
関連する問題