我目前有一个功能,可以检查单个页面上的所有空href链接。如何编辑我的功能以遍历我网站每个页面上的每个链接?Java Selenium从网站中查找所有链接?
List<WebElement> links = driver.findElements(By.tagName("a"));
我目前有一个功能,可以检查单个页面上的所有空href链接。如何编辑我的功能以遍历我网站每个页面上的每个链接?Java Selenium从网站中查找所有链接?
List<WebElement> links = driver.findElements(By.tagName("a"));
伪代码(因为我不知道你的页面是如何格式化)
while(links.hasNext())
{
your function here;
}
这是多么让人通常会去分析整个文档,并且因为任何页面只是行代码,你也可以解析它。或者,如果使用硒之类的东西,这是来自Appium的观点,您可以尝试创建一个包含指向您的hrefs的指针的表,然后创建一个实际由它们填充的行变量driver.findByClass;然后运行一个for或while循环。
你可以尝试这样的事情。会尝试获取链接,并会根据响应说明链接是否无效。
for(WebElement w : links){
URLConnection = new URL(w.getAttribute("src")).openConnection();
if (conn instanceof HttpURLConnection) {
HttpURLConnection http = (HttpURLConnection) conn;
Assert.assertTrue("The link is invalid", http.getResponseCode() < 400);
}
}
通过任何更改你的意思是在第二行HttpURLConnection?我也会因为conn而犯错误。 –
嘿,对不起,我错过了一条线。已编辑。现在就试试看 – Sentient07
hasNext似乎不适用于Web Elements –