2011-05-07 61 views
0

如何验证链接是否存在?如何验证链接

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

这可能吗?

我使用硒与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); 

} 

回答

0

你可以做的是找到所有环节里面写在这样的页面上:

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

,然后通过anchorTags集合进行迭代,使您获得所需的内容。

或者,如果你有链接文本的列表,你可以做这样的事情:

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

这个代码是所有未经测试,马上我的头顶部,所以你可能需要做一些轻微的修改但它应该接近可用。

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

我把所有的链接列表变量“链接”并遍历它。然后检查条件,我们在链接中查找的特定文本是否在列表中显示。如果它发现,它会点击它

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

如果你想让它一点点更优雅,你可以剃掉字符串的不需要的元素,但是这是一般情况下,硒的java:我可以观察到2.53.1 /硒-αβ:2.47.1。

0

最佳的方法是使用gettext()方法

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