我想使用Selenium Webdriver檢查我的網站/ cms上的每個鏈接是否通過檢查http狀態來工作。爲此,我在Selenium Webdriver中使用HttpURLConnection類。下面是我執行的代碼:HttpURLConnection顯示不正確的狀態
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class checkingLinks {
public static void main(String[] args)
{
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("link_to_cms");
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("my_login");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("my_passwod");
driver.findElement(By.xpath("//button[@type='submit']")).click();
List<WebElement> links=driver.findElements(By.tagName("a"));
System.out.println("Total links are "+links.size());
for(int i=0;i<links.size();i++)
{
WebElement ele= links.get(i);
String url=ele.getAttribute("href");
verifyLinkActive(url);
}
}
public static void verifyLinkActive(String linkUrl)
{
try
{
URL url = new URL(linkUrl);
HttpURLConnection httpURLConnect=(HttpURLConnection)url.openConnection();
httpURLConnect.setConnectTimeout(3000);
httpURLConnect.connect();
System.out.println(linkUrl+" - "+httpURLConnect.getResponseCode());
} catch (Exception e) {
}
}
}
的問題是,在結果中的所有鏈接都得到http狀態200,但我知道,他們幾個是,HTTP狀態500.你也許知道是怎麼回事可能?我在上面的代碼中犯了一個錯誤,導致錯誤結果?
老實說,我在代碼中看不到任何錯誤。一切都很完美。如果它的公共URL可以分享提取不正確結果的URL? – DebanjanB
@Dev不幸的是,它不是一個公開的網址 - CMS只在我的辦公網絡中可見。所以在你看來,代碼本身是一個適當的代碼?很高興知道:) –