我需要将当前网址(以chrome显示)与特定的href链接进行比较。 特定的href链接包含两个网址! i need to get the first link (there are two links in href)
<a href="http://pubcontentqa.perion.com/dz2/html/interstitial.html?http://www.bbc.com/news/entertainment_and_arts" target="_blank">
实施应该在 java 中使用 Selenium ......
感谢!!!
答案 0 :(得分:0)
您可以使用get属性从网页获取href。例如
String string=driver.findElement(By.xpath("//path of your element")).getAttribute("href");
如上所述,这个字符串包含两个url,所以可以拆分那些
String string = "004-034556";
String[] parts = string.split("?"); // as per condition, split here
String url1 = parts[0]; //URL one
String url2 = parts[1]; // URL two
现在你有url1和url2并做你想做的事。
谢谢你, 穆拉利
答案 1 :(得分:0)
它不包含2个网址,它包含1个网址。
之后的部分?是URL参数(See Understanding URLs on the MDN)。你的有点奇怪,因为它们通常是键/值对,但它仍然有效。
获取URL参数的正确方法是解析URL,如下所示:
String hrefAttribute = driver.findElement(By.cssSelector("YOUR_LOCATOR")).getAttribute("href");
URL hrefAsURL = new URL(hrefAttribute);
String urlParameters = hrefAsURL.getQuery();
如果您有一系列键/值对(这是您通常会看到的),则可以对urlParameters执行其他操作,例如:将它们放在Map中以便在其他地方使用:
Map<String, String> parameterMap = new HashMap<String, String>();
String[] keyValuePairs = urlParameters.split("&");
for (String joinedPair : keyValuePairs) {
String[] separatedPair = joinedPair.split("=");
parameterMap.put(URLDecoder.decode(separatedPair[0], "UTF-8"), URLDecoder.decode(separatedPair[1], "UTF-8"));
}