从Selenium中的URL抓取部分数据

时间:2018-09-11 20:12:38

标签: java selenium selenium-chromedriver

在硒中,有没有办法从URL中获取部分动态变化的数据?例如,我在代码中运行driver.getCurrentUrl()并检索了以下URL。我只想获取它的数字部分并将其连接起来,所以最终得到819499-1。但是,下次运行它时,值将有所不同。有没有办法在不捕获整个URL的情况下捕获此信息?

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

2 个答案:

答案 0 :(得分:1)

我认为这是一个更通用的问题,不仅与硒有关...

基本上,您可以像这样使用正则表达式匹配:

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));
}

另一种方法(更灵活)是使用专用库,例如​​httpcomponents。参见How to convert map to url query string?

答案 1 :(得分: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);
相关问题