2011-05-07 103 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; 
} 
}