121

Ho provato questoCome eseguire i test case Selenium WebDriver in Chrome?

WebDriver driver = new ChromeDriver(); 

Ma sto ottenendo l'errore come

test falliti: setup (TestCom): Il percorso del file eseguibile conducente deve essere impostato dal webdriver.chrome proprietà del sistema .driver; per ulteriori informazioni, vedere http://code.google.com/p/selenium/wiki/ChromeDriver. L'ultima versione può essere scaricata da http://code.google.com/p/chromedriver/downloads/list

Come posso fare in modo che Chrome esegua il test dei casi di test Selenium-WebDriver?

+0

Sarebbe utile se riuscite a capire se avete scaricato il driver chrome selenio da http://code.google.com/p/chromedriver/downloads/list e lo avete aggiunto alla libreria in eclissi in "Aggiungi jar esterni" prima di eseguire il tuo codice selenio-java. – Hemanth

risposta

204

È necessario scaricare il driver eseguibile da: ChromeDriver Download

Poi tutto quello che dovete fare è utilizzare il seguente prima di creare l'oggetto driver (già mostrato nell'ordine corretto):

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); 
WebDriver driver = new ChromeDriver(); 

Questo è stato estratto dalla guida più utile a: https://sites.google.com/a/chromium.org/chromedriver/

+1

grazie mille! quello ha funzionato per me bene! –

+0

@aimbire: hey Sto affrontando lo stesso problema. Ho fatto la stessa cosa suggerita da te ma ho ricevuto questo errore. "java.lang.IllegalStateException: l'eseguibile del driver non esiste: D: \ selenimPRJarg1 \ chromedriver.exe" Mi manca qualcosa? " – kTiwari

+0

Devi scaricare il server autonomo Selenium da qui http: //docs.seleniumhq.org/download /, e aggiungi il file jar come dipendenza dal tuo progetto Java. – dikirill

15

È necessario scaricare chromeDriver in una cartella e aggiungere questa cartella nella variabile PATH. Dovrai riavviare la tua console per farlo funzionare.

19

Scarica la versione di aggiornamento del driver di cromo da here

public class Chrome { 

    public static void main(String[] args) { 

     System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe"); 
     WebDriver driver = new ChromeDriver();    
     driver.get("http://www.google.com"); 

    } 

} 

È anche possibile vedere la risposta dopo aver cliccato here

+3

Ora questa è una soluzione ingombrante. Ti consiglierei di cambiare questo se è quello che usi al giorno d'oggi. – aimbire

+1

Il link per il download non è aggiornato. –

-2

È necessario scaricare il file EXE del driver Chrome. È possibile scaricare da questo link.

https://sites.google.com/a/chromium.org/chromedriver/

System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe"); 

ChromeDriver driver = new ChromeDriver();  
+0

Scarica il chromedriver ed estrailo. successivamente crea una cartella nel tuo progetto e chiamala come chromedriver e mantieni il file .exe al suo interno. e usa questo percorso. Questo è il semplice esempio di codice. 'code' System.setProperty ("webdriver.chrome.driver", System.getProperty ("user.dir") + "\\ chromedriver \\ chromedriver.exe"); \t \t Driver WebDriver = new ChromeDriver(); \t \t driver.get ("http://www.google.co.in"); \t \t WebElement searchbox = driver.findElement (By.name ("q")); \t \t searchbox.sendKeys ("i migliori video tutorial di selenio gratuiti"); \t \t searchbox.submit(); – vinay

+0

Per favore, molti aggiornano questa risposta con le informazioni aggiuntive vinay commentate. – rcdmk

4

È necessario installare il driver di cromo. È possibile installare questo pacchetto utilizzando pepita come mostrato di seguito

+1

Questo potrebbe essere quello ma la versione su NuGet è troppo vecchia: 2.10.0 del 13 ottobre 2014 –

+0

Non più aggiornata il 23 marzo. Impossibile utilizzare l'ultimo Chrome. – willem

6

trovare l'ultima versione di chromedriverhere. Una volta scaricato, decomprimilo nella root della tua installazione python, ad es. C:/Program Files/Python-3.5, e il gioco è fatto. Non è nemmeno necessario specificare il percorso da nessuna parte e/o aggiungere chromedriver al percorso o simili. L'ho appena fatto su un'installazione Python pulita e funziona.

+2

cattivo consiglio ... non inquinare la tua installazione python –

+0

inoltre, l'OP non ha mai specificato Python –

4

È possibile utilizzare il codice qui sotto per eseguire casi di test in Chrome utilizzando Selenio web-pilota:

import java.io.IOException; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class ChromeTest { 

    /** 
    * @param args 
    * @throws InterruptedException 
    * @throws IOException 
    */ 
    public static void main(String[] args) throws InterruptedException, IOException { 
     // Telling the system where to find the Chrome driver 
     System.setProperty(
       "webdriver.chrome.driver", 
       "E:/chromedriver_win32/chromedriver.exe"); 

     WebDriver webDriver = new ChromeDriver(); 

     // Open google.com 
     webDriver.navigate().to("http://www.google.com"); 

     String html = webDriver.getPageSource(); 

     // Printing result here. 
     System.out.println(html); 

     webDriver.close(); 
     webDriver.quit(); 
    } 
} 
3

Scarica ultima versione del driver di cromo e di questo codice:

System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe"); 
WebDriver driver= new ChromeDriver(); 
driver.manage().window().maximize(); 
Thread.sleep(10000); 
driver.get("http://stackoverflow.com"); 
5

Se si' usando homebrew su un MacOS, puoi usare il comando:

brew install chromedriver 

Dovrebbe funzionare bene dopo quello senza altra configurazione.

0

Tutte le risposte sopra sono corrette, di seguito è il piccolo tuffo nel problema e soluzione.

Il costruttore del driver di selenio per esempio

WebDriver driver = new ChromeDriver(); 

ricerche per l'eseguibile conducente, in questo caso ricerche autista cromo per eseguibile conducente cromo, nel caso in cui il servizio è in grado di trovare il file eseguibile viene generata l'eccezione

questo è dove l'eccezione proviene (notare il metodo stato di selezione)

/** 
    * 
    * @param exeName Name of the executable file to look for in PATH 
    * @param exeProperty Name of a system property that specifies the path to the executable file 
    * @param exeDocs The link to the driver documentation page 
    * @param exeDownload The link to the driver download page 
    * 
    * @return The driver executable as a {@link File} object 
    * @throws IllegalStateException If the executable not found or cannot be executed 
    */ 
    protected static File findExecutable(
     String exeName, 
     String exeProperty, 
     String exeDocs, 
     String exeDownload) { 
    String defaultPath = new ExecutableFinder().find(exeName); 
    String exePath = System.getProperty(exeProperty, defaultPath); 
    checkState(exePath != null, 
     "The path to the driver executable must be set by the %s system property;" 
      + " for more information, see %s. " 
      + "The latest version can be downloaded from %s", 
      exeProperty, exeDocs, exeDownload); 

    File exe = new File(exePath); 
    checkExecutable(exe); 
    return exe; 
    } 

segue è il controllo sta Metodo di te, che genera l'eccezione

/** 
    * Ensures the truth of an expression involving the state of the calling instance, but not 
    * involving any parameters to the calling method. 
    * 
    * <p>See {@link #checkState(boolean, String, Object...)} for details. 
    */ 
    public static void checkState(
     boolean b, 
     @Nullable String errorMessageTemplate, 
     @Nullable Object p1, 
     @Nullable Object p2, 
     @Nullable Object p3) { 
    if (!b) { 
     throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3)); 
    } 
    } 

SOLUZIONE: impostare la proprietà di sistema prima di creare oggetti driver come segue

System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe"); 
WebDriver driver = new ChromeDriver(); 

seguito è il frammento di codice (per Chrome e Firefox) dove le ricerche di servizio del driver per l'eseguibile del driver:

Chrome:

@Override 
    protected File findDefaultExecutable() { 
     return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY, 
      "https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver", 
      "http://chromedriver.storage.googleapis.com/index.html"); 
    } 

FireFox:

@Override 
protected File findDefaultExecutable() { 
     return findExecutable(
     "geckodriver", GECKO_DRIVER_EXE_PROPERTY, 
     "https://github.com/mozilla/geckodriver", 
     "https://github.com/mozilla/geckodriver/releases"); 
    } 

dove CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver" e GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver"

simile è il caso per gli altri browser, dopo è l'istantanea dell'elenco dell'implementazione del browser disponibile

enter image description here