55

Ich verwende Selenium zur Automatisierung der Tests. Meine Anwendung verwendet ausschließlich IE, bei anderen Browsern funktioniert sie nicht.Die ausführbare Treiberdatei muss durch die Systemeigenschaft "webdriver.ie.driver" festgelegt werden

Code:

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(); 
    }  
} 

Und hier ist der Fehler, den ich

Der Pfad zum Treiber ausführbaren bin immer muss vom webdriver.ie.driver Systemeigenschaft festgelegt werden; Weitere Informationen finden Sie unter https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver. Die neueste Version kann von http://www.seleniumhq.org/download/ heruntergeladen werden 12.06.2012 16:18:42 org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: E/A-Ausnahme (java.net.SocketException) bei der Verarbeitung der Anfrage abgefangen: Software hat Verbindungsabbruch verursacht: recv gescheitert 12. Juni 2012 16.18.42 org.apache.http.impl.client.DefaultRequestDirector tryExecute

Kann mir jemand helfen, auf diesem?

+1

Nicht sicher, warum ich keine Antwort dafür bereitstellen kann, aber Sie können auch umgehen, indem Sie die Ordnerposition innerhalb der PATH Environment-Wert auf dem betreffenden Computer angeben. Dies ist praktisch, wenn Sie die Dateien an verschiedenen Orten auf verschiedenen Computern in unterschiedlichen Umgebungen speichern möchten oder müssen – MorkPork

+0

Ersetzen Sie die Zeile System.setProperty ("webdriver.chrome.driver", "C: \\ Users \\ vthaduri \\ Arbeitsbereich \\ LDCSuite \\ IEDriverServer.exe "); von System.setProperty ("webdriver.ie.driver", "C: \\ Benutzer \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); –

+0

Sie haben die Eigenschaft für Chrome anstelle von IE festgelegt. Das ist nur das Problem –

Antwort

68
  1. Sie benötigen InternetExplorer-Treiber ausführbare auf Ihrem System. Also lade es von der angegebenen Quelle (http://www.seleniumhq.org/download/) herunter, entpacke es und platziere es wo du es finden kannst. In meinem Beispiel gehe ich davon aus, dass Sie es auf C:\Selenium\iexploredriver.exe

  2. platzieren werden. Dann müssen Sie es im System einrichten.Hier ist der Java-Code von meinem Selenium Projekt eingefügt:

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

Grundsätzlich haben Sie diese Eigenschaft einzustellen vor Sie Treiber initialisieren

+0

Randnotiz - Ich verwende Chrome, daher wird der Code wahrscheinlich einige Verbesserungen benötigen. Vor allem der Init Teil von IE –

+0

Ich habe den Code bereits in meinem Programm hinzugefügt. Schau dir meinen Code in der Frage an. Aber ich bin nicht sicher, wie man System.setProperty loswerden kann ("webdriver.chrome.driver", "C: \\ Benutzer \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); WebDriver oWebDriver = neuer InternetExplorerDriver(); – vkrams

+1

Ersetzen Sie einfach die 'webdriver.chrome.driver' durch' webdriver.ie.driver' und es sollte funktionieren –

13

Sie legen den Pfad für Chrome nicht IE fest. Die Fehlermeldung sagt

„Der Pfad zum Treiber ausführbar ist vom webdriver.ie.driver Systemeigenschaft festgelegt werden;“

aber Sie Einstellung "webdriver.chrome.driver".

Sie müssen "webdriver.ie.driver" auf den Speicherort der Datei einstellen, wenn Sie InternetExplorerDriver verwenden.

Sie diese Eigenschaften in der Shell einstellen/MVN/IDE mit dem -DpropertyName = Wert

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

Sie müssen Anführungszeichen verwenden, da Leerzeichen oder Schrägstriche in Ihrem Pfad, Reverse alternativ die Schrägstriche andere weise sie sind Escape-Präfix.

Sie könnten auch

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

in Ihrem Code verwenden.

+1

Ja, das ist falsch. Sie haben den Code wie folgt geschrieben: System.setProperty ("webdriver.chrome.driver", "C: \\ Benutzer \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); Bitte verwenden Sie "webdriver.chrome.driver" anstelle von "webdriver.chrome.driver". –

0

Sie brauchen, um Internetexplorer Treiber ausführbaren Download auf Ihrem System, laden Sie es von der Quelle (http://code.google.com/p/selenium/downloads/list) nach dem Download entpacken Sie es und legen Sie die Stelle irgendwo in Ihrem Computer. In meinem Beispiel, werde ich es auf D setzen: \ iexploredriver.exe

Dann haben Sie schreiben Code unten in Ihrer Eclipse-Hauptklasse

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

Für das Frühjahr:

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

ich nur setzen Der Treiber wird direkt in mein Projekt geschrieben, um keine Abhängigkeiten zu meinem lokalen Rechner zu erhalten.

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

driver = new ChromeDriver(); 
Verwandte Themen