如何验证链接

时间:2011-05-07 09:45:51

标签: selenium

如何验证链接是否存在?

例如。 我在页面中有10个链接,我想验证特定的链接

有可能吗? 我正在使用selenium和Java。

我是否可以在硒代码中写入

例如

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(elementToTest);    
}

5 个答案:

答案 0 :(得分:0)

您可以做的是找到页面上的所有链接,如下所示:

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

然后遍历anchorTags集合,让你得到你想要的东西。

或者,如果您有链接文本列表,您可以执行以下操作:

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

这段代码都是未经测试的,并且完全不受我的影响,因此您可能需要稍作修改,但它应该接近可用。

答案 1 :(得分:0)

如果您使用的是Selenium 1.x,则可以使用此代码。

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

答案 2 :(得分:0)

我希望这可以帮助你...

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

我将所有链接发送到List变量'links'并迭代它。然后检查条件,我们在链接中查找的特定文本是否显示在列表中。如果发现,它会点击它

答案 3 :(得分:0)

如果您希望验证每个特定<a href="..."></a>的href内容,您可以使用javascript返回特定Webelement的outerHTML,您可以根据自己的喜好进行识别;在下面的例子中,我使用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>");

如果你想让它变得更优雅你可以从字符串中删除不需要的元素,但这是Selenium-java:2.53.1 / Selenium-api:2.47.1的一般情况,因为我可以观察。

答案 4 :(得分:0)

最好的方法是使用getText()方法

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