2016-07-05 3 views
0

セレンのweDriverを使用してクロムプロファイルを読み込もうとしました。プロファイルは正常にロードされますが、URLをロードしようとすると失敗しました。別のクロムインスタンスが開いているとセレンのクロムドライバがURLを起動しません

webDriverが開いているかどうかにかかわらず、別のクロムインスタンスが開いているときにこの問題が発生していることに気付きました。私はセレン2.53.1を持っています。

System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe"); 
ChromeOptions options = new ChromeOptions(); 
options.addArguments("user-data-dir=C:/Users/useName/AppData/Local/Google/Chrome/User Data"); 
options.addArguments("--start-maximized"); 
driver = new ChromeDriver(options); 

driver.get("www.google.com") // here is where it fails. It works fine if I close all chrome browsers before I run the test 
+0

chromedriver.exeオープンを維持しないように、あなたのテストの終わりに)あなたが(driver.quitを使用していることを確認してください[これを参照してください](http://stackoverflow.com/q/27630091/3122133) – Madhan

答えて

3

この問題の回避方法が見つかりました。同じプロファイルを使用している別の開いているインスタンスがある場合、chromedriverは同じプロファイルで起動できないため、この問題が発生していることに気付きました。たとえば、chrome.exeが既定のプロファイルで既に開いている場合、chrome.exeは既に開いていて同じプロファイルを使用しているため、chromedriver.exeは既定のプロファイルを起動できません。

これを修正するには、chromedriver.exeとchrome.exeが同じデフォルトプロファイルを共有しないように、デフォルトプロファイルをコピーして、自動化のための別のプロファイルを作成する必要があります。

デフォルトのクロムプロファイルはこの場所にあります。

C:\ Users \ユーザーあなたのユーザ名\のAppData \

コピー\ユーザーデータフォルダからすべてのファイルを新しいフォルダにローカル\ Googleの\クローム\ユーザーデータAutomationProfile

ファイルを新しいフォルダにコピーした後、スクリプト用に使用できます。

 String userProfile= "C:\\Users\\YourUserName\\AppData\\Local\\Google\\Chrome\\AutomationProfile\\"; 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("user-data-dir="+userProfile); 
     options.addArguments("--start-maximized"); 

     driver = new ChromeDriver(options); 

あなたがあなたの要件に基づいて、周りに微調整することができpossible.Butないことを

+0

私は何年もこの問題を抱えていました:(公式の解決策があったら幸いです。 –

関連する問題