Javascript 如何在java中使用Selenium获取部分href链接?

Javascript 如何在java中使用Selenium获取部分href链接?,javascript,java,html,selenium,webdriver,Javascript,Java,Html,Selenium,Webdriver,我需要将chrome中的当前url与特定的href链接进行比较。 特定的href链接包含两个URL! 实现应该是使用Selenium的java 谢谢 您可以使用get属性从网页获取href。比如说 String string=driver.findElement(By.xpath("//path of your element")).getAttribute("href"); 如上所述,此字符串包含两个url,因此可以拆分这些url String string = "004-034556";

我需要将chrome中的当前url与特定的href链接进行比较。 特定的href链接包含两个URL!

实现应该是使用Selenium的java


谢谢

您可以使用get属性从网页获取href。比如说

String string=driver.findElement(By.xpath("//path of your element")).getAttribute("href");
如上所述,此字符串包含两个url,因此可以拆分这些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,可以做您想做的事情了

谢谢,,
Murali

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

电影后面的部分?是URL参数。您的有点奇怪,因为它们通常是键/值对,但它仍然有效

获取URL参数的正确方法是解析URL,如下所示:

    String hrefAttribute = driver.findElement(By.cssSelector("YOUR_LOCATOR")).getAttribute("href");
    URL hrefAsURL = new URL(hrefAttribute);
    String urlParameters = hrefAsURL.getQuery();
如果您有一系列您通常会看到的键/值对,则可以对URL参数执行其他操作,例如,将它们放在地图中以供其他地方使用:

    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"));
    }

祝你好运让我们知道结果如何。@Keren请正确回答。所以每个人都得到了这个解决方案。
    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"));
    }