How to click a link whose href has a certain substring in Selenium?

前端 未结 4 1430
攒了一身酷
攒了一身酷 2020-12-07 18:51
相关标签:
4条回答
  • 2020-12-07 19:32

    You can do this:

    //first get all the <a> elements
    List<WebElement> linkList=driver.findElements(By.tagName("a"));
    
    //now traverse over the list and check
    for(int i=0 ; i<linkList.size() ; i++)
    {
        if(linkList.get(i).getAttribute("href").contains("long"))
        {
            linkList.get(i).click();
            break;
        }
    }
    

    in this what we r doing is first we are finding all the <a> tags and storing them in a list.After that we are iterating the list one by one to find <a> tag whose href attribute contains long string. And then we click on that particular <a> tag and comes out of the loop.

    0 讨论(0)
  • 2020-12-07 19:44

    use driver.findElement(By.partialLinkText("long")).click();

    0 讨论(0)
  • 2020-12-07 19:48

    I need to click the link who's href has substring "long" in it. How can I do this?

    With the beauty of CSS selectors.

    your statement would be...

    driver.findElement(By.cssSelector("a[href*='long']")).click();
    

    This means, in english,

    Find me any 'a' elements, that have the href attribute, and that attribute contains 'long'

    You can find a useful article about formulating your own selectors for automation effectively, as well as a list of all the other equality operators. contains, starts with, etc... You can find that at: http://ddavison.io/css/2014/02/18/effective-css-selectors.html

    0 讨论(0)
  • 2020-12-07 19:51

    With the help of xpath locator also, you can achieve the same.

    Your statement would be:

    driver.findElement(By.xpath(".//a[contains(@href,'long')]")).click();
    

    And for clicking all the links contains long in the URL, you can use:-

    List<WebElement> linksList = driver.findElements(By.xpath(".//a[contains(@href,'long')]"));
    
    for (WebElement webElement : linksList){
             webElement.click();
    }
    
    0 讨论(0)
提交回复
热议问题