在硒中,有没有办法从URL中获取部分动态更改的数据?例如,我在代码中运行了driver.getCurrentUrl((并检索了以下URL。我只想抓住它的数字部分并连接它,所以我最终得到 819499-1。但是,下次我运行它时,值会有所不同。有没有办法在不捕获整个 URL 的情况下捕获此信息?
http://custmaint/clnt_estimate_overview.jsp?estimateNbr=819499&versionNbr=1&estimateMgmt=true&clntAutoAssign=true
我认为这是一个更通用的问题,不仅与硒有关......
基本上,您可以使用正则表达式匹配,如下所示:
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这样的专用库;请参阅如何将映射转换为url查询字符串?
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);