如何验证链接是否存在?
例如。 我在页面中有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);
}
答案 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;
}
}