2017-06-06 3 views
1

FirefoxでWebアプリケーションを開くためにJavaコードでSeleniumを使用しています。しかし、Firefoxプロファイルに問題がありました。コードを実行するとFirefoxウィンドウが新しいプロファイルで開かれていたので、プロキシ設定が異なるのでWebアプリケーションを開くことができませんでした(私はFirefoxにIPアドレスを追加しないでください) 。私は自分のコードからデフォルトのプロファイルを取得しようとしましたが、何も変わりませんでした。私も新しいプロファイルを作成しようとしましたが、IPを追加する方法はわかりません。 私はFirefoxを手動で開くことができるようにコードを変更しました。その後、Seleniumはこのタブを使ってアプリケーションを開き、IPがそこにあります。しかし、これも失敗し、コードはまだ新しいウィンドウを開きます。 誰かが助けることができれば非常に感謝します。Selenium:Javaコードを使用してデフォルトプロファイルのFirefoxを開く

+0

使用しているコードは何か、エラーは何ですか?問題文にこれらを追加してください。 – demouser123

+0

あなたはプロキシを扱うプロファイルでfirefoxを開く必要があります –

+0

@ L.M.Oあなたの仕事を見せてください。ありがとう – DebanjanB

答えて

1

プロキシ値を持つfirefoxプロファイルを作成し、そのプロファイルでfirefoxインスタンスを開くことができます。コードの下にいくつかのアイデアがあります。

public static void main(String[] args) 
{ 


     // Create proxy class object 
     Proxy p=new Proxy(); 

     // Set HTTP Port to 7777 
     p.setHttpProxy("localhost:7777"); 

     // Create desired Capability object 
     DesiredCapabilities cap=new DesiredCapabilities(); 


     // Pass proxy object p 
     cap.setCapability(CapabilityType.PROXY, p); 
     System.setProperty("webdriver.gecko.driver", "//PATH"); 
     WebDriver driver=new FirefoxDriver(cap); 

} 

希望します。ありがとう。

+0

ポート7777の参照先を教えてください。そして、どこでサーバのIPアドレスを設定できますか? –

+1

ローカルホストはサーバーのIPアドレスです。プロキシが存在しない場合は、そのままにしてください。したがって、p.setHttpProxy( "172.17.95.1")のようになります。 –

+0

これで動作します。どうもありがとう! –

0

GeckoDriverを使用して最新のfirefoxを使用する必要があるので、これを使用してgeckodriver用のfirefoxでプロキシを設定できます。

String PROXY = "localhost"; 
int PORT = 8080; 

JSONObject json = new JsonObject(); 
json.addProperty("proxyType", "MANUAL"); 
json.addProperty("httpProxy", PROXY); 
json.addProperty("httpProxyPort", PORT); 
json.addProperty("sslProxy", PROXY); 
json.addProperty("sslProxyPort", PORT); 

DesiredCapabilities cap = new DesiredCapabilities(); 
cap.setCapability("proxy", json); 

GeckoDriverService service =new GeckoDriverService.Builder(firefoxBinary) 
    .usingDriverExecutable(new File("path to geckodriver")) 
    .usingAnyFreePort() 
    .usingAnyFreePort() 
    .build(); 
service.start(); 

// GeckoDriver currently needs the Proxy set in RequiredCapabilities 
driver = new FirefoxDriver(service, cap, cap); 
関連する問題