Selenium 如何验证链接

Selenium 如何验证链接,selenium,Selenium,如何验证链接是否存在 例如。 我在一个页面中有10个链接,我想验证特定的链接 可能吗? 我正在使用selenium和Java 我可以在selenium代码中编写代码吗 乙二醇 您可以这样查找页面上的所有链接: var anchorTags driver.findElement(By.TagName("a")); foreach(var link in getMyLinkTextsToTest()) { var elementToTest = driver.findElement(By.link

如何验证链接是否存在

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

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

我可以在selenium代码中编写代码吗

乙二醇


您可以这样查找页面上的所有链接:

var anchorTags driver.findElement(By.TagName("a"));
foreach(var link in getMyLinkTextsToTest())
{
var elementToTest = driver.findElement(By.linkText(link));
Assert.IsNotNull(elementToTest);
}
然后通过anchorTags集合进行迭代,使您获得所需的内容

或者,如果你有一个链接文本列表,你可以这样做:

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

这段代码都没有经过测试,我想不起来,所以您可能需要做一些轻微的修改,但它应该接近可用状态。

如果您使用的是Selenium 1.x,您可以使用这段代码

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

我希望这能帮助你

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

我将所有链接都列为变量“links”,并对其进行迭代。然后检查条件,我们在链接中查找的特定文本是否出现在列表中。如果发现了,它将单击它

如果您希望验证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的一般情况。

最好的方法是使用getText方法

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