Java 从Selenium中的URL获取部分数据

Java 从Selenium中的URL获取部分数据,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,在selenium中,有没有一种方法可以从URL获取部分动态变化的数据?例如,我在代码中运行了driver.getCurrentUrl(),并检索了下面的URL。我只想获取它的数字部分并将其连接起来,这样我就得到了819499-1。但是,下次我运行它时,值将不同。有没有一种方法可以在不捕获整个URL的情况下捕获此信息 我认为这是一个更一般的问题,不仅与硒有关 基本上,您可以使用正则表达式匹配,如下所示: String url = "http://custmaint/clnt_estimate_o

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


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

基本上,您可以使用正则表达式匹配,如下所示:

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这样的专用库;请参阅

Pattern
estimateNbr=(\d+).*versionNbr=(\d+)
应该可以工作。谢谢,这工作非常好。我想避开正则表达式。
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);