2017-05-09 8 views
0

私は、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と一緒にいることを知っているあなたは多分それがどのように知っているということです可能?上記のコードで間違った結果を出す間違いをしましたか?

+0

正直、私はあなたのコードにエラーは見当たりません。すべてが完璧に見えます。大文字と小文字を区別しないURLを共有できますか? – DebanjanB

+0

@Dev残念ながら、公開URLではありません。CMSは私のオフィスネットワークでのみ表示されます。あなたの意見では、コード自体は適切なものですか?知っておくべきこと:) –

答えて

0

HttpURLConnectionがHTTPリクエストを送信しているとは限りません。接続を開くだけです。

また、認証(ログイン)時に受け取るCookieは、後続のリクエストでヘッダーとして送信する必要があります。

+0

答えをありがとう。それで、コードを修正/追加して、それができるようにするために何を提案するのですか? –

関連する問題