55

私はテストを自動化するためにSeleniumを使用しています。私のアプリケーションはIEを独占的に使用しますが、他のブラウザでは動作しません。ドライバ実行ファイルはwebdriver.ie.driverシステムプロパティで設定する必要があります

コード:

import org.openqa.selenium.ie.InternetExplorerDriver; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 

public class Test { 
    public static void main(String[] args) { 
     final String sUrl = "http://www.google.co.in/";        
     System.setProperty("webdriver.chrome.driver","C:\\Users\\vthaduri\\workspace\\LDCSuite\\IEDriverServer.exe"); 
     WebDriver oWebDriver = new InternetExplorerDriver(); 
     oWebDriver.get(sUrl); 
     WebElement oSearchInputElem = oWebDriver.findElement(By.name("q")); // Use name locator to identify the search input field. 
     oSearchInputElem.sendKeys("Selenium 2"); 
     WebElement oGoogleSearchBtn = oWebDriver.findElement(By.xpath("//input[@name='btnG']")); 
     oGoogleSearchBtn.click(); 

     try { 
      Thread.sleep(5000); 
     } catch(InterruptedException ex) { 
      System.out.println(ex.getMessage()); 
     } 
     oWebDriver.close(); 
    }  
} 

そして、ここでは私が

ドライバの実行可能ファイルへのパスがwebdriver.ie.driverシステムプロパティで設定する必要があります取得していますエラーです。詳細については、https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriverを参照してください。 http://www.seleniumhq.org/download/ 2012年6月12日4:18:42 org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO:リクエストの処理中にI/O例外(java.net.SocketException)が検出されました:ソフトウェアは、接続アボートを発生させた:RECVは 2012年6月12日4時18分42秒PM org.apache.http.impl.client.DefaultRequestDirector tryExecuteに

を失敗誰かがこの上で私を助けることができますか?

+1

わかりません。これは、異なる環境の異なるマシン上の別々の場所にファイルを保存したい場合、または持っていなければならない場合に便利です。 – MorkPork

+0

System.setProperty( "webdriver.chrome.driver"、 "C:\\ Users \\ vthaduri \\ワークスペース\\ LDCSuite \\ IEDriverServer.exe "); System.setProperty( "webdriver.ie.driver"、 "C:\\ Users \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); –

+0

IEの代わりにchromeのプロパティを設定しました。これは問題です –

答えて

68
  1. システム上で実行可能なInternetExplorerドライバが必要です。ヒントを得たソース(http://www.seleniumhq.org/download/)からダウンロードして、どこかに見つけてください。私の例では、C:\Selenium\iexploredriver.exe

  2. に配置することを前提としています。システムでそれを設定する必要があります。ここに私のセレンプロジェクトから貼り付けたJavaコードは次のとおりです。

    File file = new File("C:/Selenium/iexploredriver.exe"); 
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); 
    WebDriver driver = new InternetExplorerDriver(); 
    

は基本的に、あなたが前にこのプロパティを設定する必要がありますが、ドライバ

+0

サイドノート - 私はChromeを使用していますので、コードには多少の調整が必要です。特にIE –

+0

のinit部分は私のプログラムにすでにコードを追加しています。質問で自分のコードを見てください。しかし、私はSystem.setProperty( "webdriver.chrome.driver"、 "C:\\ Users \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe")を取り除く方法がわかりません。 WebDriver oWebDriver =新しいInternetExplorerDriver(); – vkrams

+1

'webdriver.chrome.driver'を' webdriver.ie.driver'に置き換えてください。それはうまくいくはずです –

13

ChromeのパスをIE以外に設定しています。エラーメッセージは

「はドライバ実行可能ファイルへのパスは webdriver.ie.driverシステムプロパティで設定されなければならない。」と言います

ただし、「webdriver.chrome.driver」と設定しています。

InternetExplorerDriverを使用する場合は、ファイルの場所に "webdriver.ie.driver"を設定する必要があります。あなたがあるため、スペースの引用符を使用する必要があるか、あなたのパスにスラッシュ-DpropertyName =値

-Dwebdriver.ie.driver="C:/.../IEDriverServer.exe" 

あなたのシェルでこれらのプロパティを設定することができます/ MVNは/ IDE、あるいは他の賢明なスラッシュを逆に彼ら接頭辞はエスケープです。

また、あなたのコードの中

System.setProperty("webdriver.ie.driver","C:/.../IEDriverServer.exe"); 

を使用することができます。

+1

はい、これは間違っています。あなたはコードを以下のように書いています:System.setProperty( "webdriver.chrome.driver"、 "C:\\ Users \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); "webdriver.chrome.driver"の代わりに "webdriver.chrome.driver"を使用してください。 –

0

を初期化するあなたの上のInternetExplorerドライバの実行可能ファイルをダウンロードする必要が必要があります。システムをダウンロードした後、ソース(http://code.google.com/p/selenium/downloads/list)からダウンロードして解凍し、コンピュータのどこかの場所に置いてください。私の例では、私はDに配置します:iexploredriver.exe

\その後、あなたは春のためにあなたの日食のメインクラスのコード

System.setProperty("webdriver.ie.driver", "D:/iexploredriver.exe"); 
    WebDriver driver = new InternetExplorerDriver(); 
0

以下の書き込みがあります。

File inputFile = new ClassPathResource("\\chrome\\chromedriver.exe").getFile(); 
System.setProperty("webdriver.chrome.driver",inputFile.getCanonicalPath()); 
2

を私はちょうど置きますドライバは自分のプロジェクトに直接ファイルして、ローカルマシンに依存しないようにします。私はこのための答えを投稿することはできませんが、あなたはまた、問題のマシン上のPATH環境値内のフォルダの場所を指定することでこれを回避することができる理由

final File file = new File("driver/chromedriver_2_22_mac"); 
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath()); 

driver = new ChromeDriver(); 
関連する問題

 関連する問題