2015-03-12 4 views
6

Ich versuche, mein Selenium Grid mit dem Chrome-Treiber zu starten.Selen-Grid mit Chrome-Treiber (WebDriverException: Der Pfad zur ausführbaren Treiberdatei muss durch die Systemeigenschaft webdriver.chrome.driver festgelegt werden)

Zunächst begann ich Hub und Knoten: java -jar Selen-server-Standalone-2.45.0.jar -role Hub java -jar Selen-server-Standalone-2.45.0.jar -role Knoten -Hub http://localhost:4444/grid/register

als ich starten meinem Test:

public class ChromeDriverTest { 
    private WebDriver driver = null; 
    String BaseURL,NodeURL; 

@Before 
public void before() throws Exception{ 
    BaseURL="http://www.google.com"; 
    NodeURL="http://localhost:4444/wd/hub"; 
    File file = new File("C:\\Users\\pushkaryova\\Desktop\\Nexus\\driver\\chromedriver.exe"); 
    System.setProperty("webdriver.chrome.driver", file.getAbsolutePath()); 
    DesiredCapabilities capa =DesiredCapabilities.chrome(); 
    capa.setBrowserName("chrome"); 
    capa.setPlatform(Platform.ANY); 
    driver=new RemoteWebDriver(new URL(NodeURL),capa); 
} 

@Test 
public void GoogleSearch() throws Exception { 
    driver.get("http://www.google.com"); 
    WebElement searchBox = driver.findElement(By.xpath("//div[3]/div/input[1]")); 
    hightlight(searchBox); 
    driver.findElement(By.xpath("//div[3]/div/input[1]")).clear(); 
    driver.findElement(By.xpath("//div[3]/div/input[1]")).sendKeys("Test"); 
    driver.findElement(By.xpath("//button")).click(); 

} 

public void hightlight(WebElement webElement) throws InterruptedException { 
    for (int i = 0; i < 2; i++) { 
     JavascriptExecutor js = (JavascriptExecutor) driver; 
     js.executeScript(
       "arguments[0].setAttribute('style', arguments[1]);", 
       webElement, "color: red; border: 3px solid red;"); 
    } 
} 

}

und eine Fehlermeldung erhalten: org.openqa.selenium.WebDriverException: der Pfad zum Treiber ausführbare Datei muss vom webdri eingestellt werden ver.chrome.driver Systemeigenschaft

Was ist falsch in meinem Code?

+0

tat U versucht solutiom von WebDriver Wiki vor den -jar Optionen platziert werden ??? – SkorpEN

+0

@SkorPEN Ich habe viel probiert und viel gelesen. Aber das hilft mir leider nicht. Vielleicht könntest du sagen, was genau in meinem Code falsch ist? –

+0

U Eigenschaft nicht festgelegt für Chrom-Binärdatei. Beginnen Sie zuerst mit dem einfachsten Arbeitsbeispiel. Ich habe versucht, Chrome-Browser auf dem Grid-Rechner, dann von RemoteWebdriver zu starten. Setze schließlich die Systemeigenschaft für binary of chrom auf dem Grid-Rechner. – SkorpEN

Antwort

14

Die ausführbare Datei driver muss physikalisch auf dem Knotenrechner verfügbar sein. Sie können den Pfad auf exe, während die node

Fügen Sie diese Zeile in der

Befehl starten

-Dwebdriver.chrome.driver=./chromedriver.exe

ich diese Datei von json konfigurieren und festgestellt, dass mit dem Namen etwas leichter

JSON-Datei ist DefaultNode.json

{ 
    "capabilities": 
     [ 
     { 
      "browserName": "firefox", 
      "maxInstances": 5, 
      "seleniumProtocol": "WebDriver" 
     }, 
     { 
      "browserName": "chrome", 
      "maxInstances": 5, 
      "seleniumProtocol": "WebDriver" 
     }, 
     { 
      "platform": "WINDOWS", 
      "browserName": "internet explorer", 
      "maxInstances": 1, 
      "seleniumProtocol": "WebDriver" 
     } 
     ], 
    "configuration": 
    { 
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
    "maxSession": 5, 
    "port": 5555, 
    "host": ip, 
    "register": true, 
    "registerCycle": 5000, 
    "hubPort": 4444, 
    "hubHost": ip 
    } 
} 

Um den Knoten mit json Config

java -jar selenium-server-standalone-2.45.0.jar -role webdriver -nodeConfig DefaultNode.json -Dwebdriver.ie.driver=.\IEDriverServer.exe 

Hinweis beginnen die IEDriverServer.exe mit json Datei in demselben Verzeichnis platziert

+0

Danke! Das hat mir ganz gut geholfen! Aber wenn ich den gleichen Test mit FireFox oder IE ausführen will, wird das kein Problem sein? –

+0

Sie müssen den Pfad zur exe auf dieselbe Weise angeben und die Zieltreiber-Exe von commandline instanziieren. – Saifur

+0

Du meinst so: java -jar selen-server-standalone-2.45.0.jar -role knoten -hub http: // localhost: 4444/grid/register -Dwebdriver.chrome.driver =. \ IEDriverServer.exe –

1

Sie Ihren Knoten beginnen als:

java -jar selenium-server-standalone-2.45.0.jar -role node -hub localhost:4444/grid/register -browser "browserName=chrome,version=ANY,platform=WINDOWS,maxInstances=20" -Dwebdriver.chrome.driver="C:\chromedriver.exe" -maxSession 20 
0

Sie kann den Pfad zu dem Ordner festlegen, der die ausführbare Datei "chromedriver" in Ihren Systemvariablen (für Windows) enthält.

Das hat den Fehler für mich los.

3

Dies funktioniert für mich in 3.3.1 und höher

java -Dwebdriver.chrome.driver="C:\chromedriver.exe" -jar selenium-server-standalone-2.45.0.jar -role node -hub localhost:4444/grid/register -browser "browserName=chrome,version=ANY,platform=WINDOWS,maxInstances=20" -maxSession 20 

WebDriver Pfad sollte

Verwandte Themen