【问题标题】:How to get part of href link using Selenium in java?java - 如何在java中使用Selenium获取部分href链接?
【发布时间】:2016-05-20 09:05:36
【问题描述】:

我需要将当前 url(在 chrome 中)与特定的 href 链接进行比较。 具体的href链接包含两个urli 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...

谢谢!!!

【问题讨论】:

  • 祝你好运。让我们知道结果如何。

标签: javascript java html selenium webdriver


【解决方案1】:

您可以使用 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 并做你想做的事。

谢谢你, 壁画

【讨论】:

  • @Keren 请正确回答。所以每个人都得到了这个解决方案。
【解决方案2】:

它不包含 2 个 URL,它包含 1 个 URL。

? 之后的部分是 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<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"));
    }

【讨论】:

    猜你喜欢
    • 2020-07-14
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2018-03-01
    • 2015-08-30
    • 1970-01-01
    相关资源
    最近更新 更多