45

I want to use Selenium WebDriver on a webpage that I have on my hard disc. I've tried to something like:

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

...instead of the normal:

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

...but it doesn't work (I get the error "unknown protocol: c").

user664833
  • 18,397
  • 19
  • 91
  • 140
Bartosz Wyględacz
  • 539
  • 2
  • 5
  • 10

6 Answers6

75

Try using this method:

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

(or)

selenium = new WebDriverBackedSelenium(driver, "file:///D:/folder/abcd.html");
Pradeep SJ
  • 2,326
  • 2
  • 15
  • 13
6

This can also be done with a relative file:

Path sampleFile = Paths.get("sample.html");
driver.get(sampleFile.toUri().toString());
Synox
  • 1,148
  • 2
  • 17
  • 38
4

You can always drag and drop html file from your PC on open web browser during selenium session and see how file path looks. In my case it is:

webdriver.get("file:///C:/Users/Desktop/Some%20%E2%80%93%20file%20on%20the%20PC.html")
Cosinus
  • 41
  • 1
3

When you call the driver.get(URL) method, WebDriver looks for HTTP request using as base javascript, Therefore, refering to a website as a path, that task won't be possible.

But it will be possible if you : 1st- Install Apache WebServer (let's say) on your marchine. 2nd- Upload or expose to the WebServer, that web application (dispatcher.html) 3rd- Try recording and executing your testcases on [http://localhost:8080/dispatcher.html] (8080 is the default port but you can configure it to other).

2

For those of us using java.nio, we can also do the following:

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

...where filePath is an object of type java.nio.file.Path and represents an absolute path.

nikodaemus
  • 1,918
  • 3
  • 21
  • 32
2

Selenium Version: 3.141.59

Use this webdriver.get("file:///D:/folder/abcd.html") get failed.

Instead of webdriver.get("///D:/folder/abcd.html") get successfully.

Moon
  • 137
  • 1
  • 7