私は、httpステータスをチェックすることで、Selenium Webdriverを使用して自分のWebサイト/ cmsのすべてのリンクが機能しているかどうかを確認しようとしています。これを行うには、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を共有できますか? – DebanjanB
@Dev残念ながら、公開URLではありません。CMSは私のオフィスネットワークでのみ表示されます。あなたの意見では、コード自体は適切なものですか?知っておくべきこと:) –