-1

Possible Duplicate:
How can I get query string values?

I am trying to get a page number from a URL during a test. The URL looks like this:

http://www.site.com/objects/search/8765XX/results?page=2&sort_att=posted_dt&sort_dir=desc

What I want to get is the page number right after 'page=' in the url.

Community
  • 1
  • 1
Klendathu
  • 793
  • 1
  • 12
  • 20

3 Answers3

3

In one line, by splitting url. jsfiddle

var url = "http://www.site.com/objects/search/8765XX/results?page=2&sort_att=posted_dt&sort_dir=desc";

var pageNumber = parseInt(url.split("page=")[1].split("&")[0], 10);
Anoop
  • 23,044
  • 10
  • 62
  • 76
  • When I put this into Selenium-IDE, i get Null for the value of 'num' (I previously stored the url into a variable called 'url'. storeEval | var url = storedVars['url']; var pageNumber = parseInt(url.split("page=")[1].split("&")[0], 10); | num – Klendathu Oct 09 '12 at 22:23
  • Okay, got it to work. Using this in Selenium IDE storeEval | javascript{storedVars['V1'].split("page=")[1].split("&")[0];} | num num gets me the page number. – Klendathu Oct 11 '12 at 17:43
0

I have this small function to fetch URL parameters (I found it on internet many years ago) :

function getUrlParameter(name, defaultValue) {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null ) return defaultValue;
    else return results[1];
}

I use it like this :

pageNumber = parseInt(getUrlParameter('page'), 10);
Denys Séguret
  • 372,613
  • 87
  • 782
  • 758
0

A simple pure JavaScript implementation I can think of would be something like the following:

 var url = http://www.site.com/objects/search/8765XX/results?page=2&sort_att=posted_dt&sort_dir=desc
 var matchedPos =  url.search("page=\\d");
 var matched = url.substr(matchedPos);
 var num = matched.split("=")[1]; //might need to parse
Sednus
  • 2,095
  • 1
  • 18
  • 35