56
votes

I'm attempting to get the URL of the currently open page. I am using Selenium WebDriver and Java.

I am accessing the current URL via:

WebDriver driver = new WebDriver();
String url = driver.getCurrentUrl();

however, the URL does not appear to actually reflect where I currently am.

My current test case involves going to the NYT website and then clicking on the "Technology" link. However, url appears to always be http://www.nytimes.com/, regardless of the URL that is displayed in the address bar.

How do I actually access the value of the URL that's in the address bar so I can tell what page I'm actually on?

1
just curious why cant you directly access the technology link? why di you want to go to home page and click?Kishore
My program is iteratively exploring the page by following links - but it would be useful to be able to know where it has actually been so that it doesn't click on the same links over and over again.Karen
Using HtmlUnitDriver it, indeed, does not change the URL. Strange. In IE8 on Windows XP SP3, everything runs smoothly, though. What is your browser (did you try the others?), OS and Selenium version?Petr Janeček
I know the OP asked about Java, but for Python/Robot Framework, at stackoverflow.com/questions/31833624/… someone recommended GetLocationMarkHu

1 Answers

28
votes

Put sleep. It will work. I have tried. The reason is that the page wasn't loaded yet. Check this question to know how to wait for load - Wait for page load in Selenium