2013-07-31 22 views
15

Muszę używać weblora selenu na stronie, którą mam na dysku twardym. Próbowałem coś takiego:Jak korzystać z selenowego webdrivera na lokalnej (na moim komputerze) stronie internetowej, zamiast zlokalizować gdzieś na www?

selenium = new WebDriverBackedSelenium(driver, "C:\\...dispatcher.html"); 

zamiast normalny:

selenium = new WebDriverBackedSelenium(driver, "http://www.dunnowhattodo.org"); 

Ale to nie działa (dostaję błąd "nieznany protokół: c")

Czy to w ogóle możliwy? Jestem nowym użytkownikiem selenium webdriver, więc może to być głupie pytanie, ale nadal będę aplikuwał każdą pomoc, którą otrzymam :)

+0

może wymagać 'file: //' protokołu przed ... próbowałeś tego? – Arran

+0

Nie, ja tego nie wypróbowałem: file: // C: // ... czy to powinno być w ten sposób? –

+0

@ Bartosz Wygledacz: https://code.google.com/p/selenium/issues/detail?id=3997 – Jayan

Odpowiedz

29

Spróbuj użyć tej metody:

webdriver.get("file:///D:/folder/abcd.html"); 

(lub)

selenium = new WebDriverBackedSelenium(driver, "file:///D:/folder/abcd.html"); 
+1

Dziękujemy człowiekowi, że zadziałało: D –

+0

Witamy U! :)) –

+3

Czy można wykorzystać ścieżki względne? – Pithikos

1

Po wywołaniu metody driver.get (URL), WebDriver szuka żądania HTTP za pomocą as base javascript, Odnosząc się do strony internetowej jako ścieżki, zadanie to nie będzie możliwe.

Ale będzie to możliwe, jeśli: 1st- Zainstaluj Apache WebServer (powiedzmy) na swoim marchine. 2nd- Załaduj lub wystaw do WebServer, tej aplikacji internetowej (dispatcher.html) 3rd- Spróbuj nagrywać i wykonywać testcases na [http: // localhost: 8080/dispatcher.html] (8080 to domyślny port, ale możesz skonfiguruj go na inny).

0

Dla tych z nas, używając java.nio, możemy również wykonać następujące czynności:

webdriver.get("file:\\\\\\" + filePath); 

... gdzie filePath jest obiektem typu java.nio.file.Path i reprezentuje absolutna ścieżka.

1

ten może być również wykonane ze względnym pliku:

Path sampleFile = Paths.get("sample.html"); 
driver.get(sampleFile.toUri().toString());