Selenium 如何验证链接
如何验证链接是否存在 例如。 我在一个页面中有10个链接,我想验证特定的链接 可能吗? 我正在使用selenium和Java 我可以在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
您可以这样查找页面上的所有链接:
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;
}
}