-1

In selenium, is there a way to grab partial dynamically changing data from a URL? Example, I ran driver.getCurrentUrl() in my code and retrieved the below URL. I only want to grab the numeric portion of it and concatenate it so I end up with 819499-1. However, next time I run it the values will be different. Is there a way to capture this information without capturing the entire URL?

http://custmaint/clnt_estimate_overview.jsp?estimateNbr=819499&versionNbr=1&estimateMgmt=true&clntAutoAssign=true

Kris
  • 1

2 Answers2

1

I think this is a more generic question, not only related to Selenium...

Basically, You could use regular expression matching like so:

String url = "http://custmaint/clnt_estimate_overview.jsp?estimateNbr=819499&versionNbr=1&estimateMgmt=true&clntAutoAssign=true";
final Pattern p = Pattern.compile("^.*\\?estimateNbr=(\\d+)&versionNbr=(\\d+).*$");
Matcher m = p.matcher(url);
if (m.find()) {
    System.out.print(m.group(1) + "-" + m.group(2));
}

Another approach (more flexible) is to use a dedicated library like httpcomponents; see How to convert map to url query string?

madman_xxx
  • 104
  • 8
0
String url = driver.getCurrentUrl();
String estimateNbr = url.substring(url.indexOf("eNbr=")+5, url.indexOf("&v"));
String versionNbr = url.substring(url.indexOf("nNbr=")+5, url.indexOf("&e"));
System.out.println(estimateNbr + "-" + versionNbr);
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
William.Avery
  • 60
  • 1
  • 7