我目前有一個功能,可以檢查單個頁面上的所有空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 –