开发者

How to verify links

How to verify whether links are present or not?

eg. I have 10 links in a page, I want to verify the particular link

Is it possible? I am using selenium with Java.

Does i can write inside the selenium code

eg

selenium.click("searchimage-size");    
selenium.waitForPopUp("dataitem", "3000");    
selenium.selectWindow("name=dataitem");    

foreach(var link in getMyLinkTextsToTest())    
{
    var elementToTest = driver.findElement(By.linkText(link));    
    Assert.IsNotNull(eleme开发者_开发百科ntToTest);    
}


What you can do is find all links on the page like this:

var anchorTags driver.findElement(By.TagName("a"));

and then iterate through the anchorTags collection to make you you've got what you're looking for.

Or if you have a list of the link texts you can do something like this:

foreach(var link in getMyLinkTextsToTest())
{
var elementToTest = driver.findElement(By.linkText(link));
Assert.IsNotNull(elementToTest);
}

This code is all untested and right off the top of my head so you might need to do some slight modification but it should be close to usable.


if you are using Selenium 1.x you can use this code.

        String xpath = "//<xpath till your anchor tag>a/@herf";
        String href = selenium.getAttribute(xpath);
        String expectedLink = "your link";
        assertEquals(href,expectedLink);


I hope this may help you...

List<WebElement> links = driver.findElements(By.tagName("a"));
for(WebElement we : links) {
   if("Specific link text".equals(we.getText("Specific link text"))) {
      we.click();
   }
}

I'm taking all links to List variable 'links' and iterating it. Then checking condition, for the specific text we looking in the link is presenting in the list or not. If it found out, it'll click on it


If you're looking to verify each specific <a href="..."></a> for the content of href, you can use javascript to return the outerHTML for a specific Webelement which you can identify however you like; in the example below I use By.cssSelector:

WebElement Element = driver.findElement(By.cssSelector("..."));
String sourceContents = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].outerHTML;", element); 
assertEquals(sourceContents, "<a href=\"...YOUR LINK HERE..." target=\"_blank\">Learn More</a>");

If you want to make it a tad more elegant you can shave the undesired elements off of the string, but this is the general case as of Selenium-java: 2.53.1 / Selenium-api: 2.47.1 as I can observe.


Best approach would be to use getText() method

List<WebElement> allLinks = driver.findElements(By.tagName("a"));
 for(WebElement specificlink : allLinks ) {
   if(specificlink.getText().equals("link Text"){
    //SOPL("Link found");
    break;
 }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜