如何在java中使用Selenium获取href链接的一部分
How to get part of href link using Selenium in java?
我需要将当前网址(在chrome中)与特定的href链接进行比较。特定的 HREF 链接包含两个 URL! 我需要获取第一个链接(href 中有两个链接)
<a href="http://pubcontentqa.perion.com/dz2/html/interstitial.html?http://www.bbc.com/news/entertainment_and_arts" target="_blank">
实现应该在Java中使用Selenium...
谢谢!!!
您可以使用 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 并做你想做的事。
谢谢穆拉利
它不包含 2 个 URL,它包含 1 个 URL。
? 后面的部分是 URL 参数(请参阅了解 MDN 上的 URL)。 你的有点奇怪,因为它们通常是键/值对,但它仍然有效。
获取 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"));
}
相关文章:
- 获取不带Jquery的嵌套父HREF节点
- 点击获取jQuery上的href属性
- 可以'当window.location.href时,无法从javascript获取post值
- 获取Href的集合
- 如何使用Javascript获取当前页面URL,并在<a href="[the_URL]”>
- 使用正则表达式获取特定的 href 值
- jQuery/js- 如何从基于 href 的类中获取菜单名称
- React路由器<link>如何在Jest测试中获取href的值
- 获取<a>href使用jQuery
- Jquery将href值获取到span应答器中
- JavaScript 获取要添加到锚标记中的 HREF 的页码
- 单击时获取 href 的顶部主机名
- 在IE 7中,如果链接是使用jQuery创建的,如何获取链接的href属性的文字值
- 从 JSON Href 获取在表中工作的按钮
- 从标记中的 href 获取查询字符串参数
- 通过 href 获取值的最佳方式
- Jquery - 如何从链接 href 获取页码并用作类
- 如何将数据从 href 获取到字符串并在之后使用它
- 当试图为href获取attr时获取#[object对象]
- anchor href获取当前url并使用javascript附加到下一页