何度も私達はウェブサイトの壊れたハイパーリンクに直面する。 今日は、Seleniumを使用して壊れたリンクを見つける方法を学びます。 これらのトピックに移動する前に、のは、基本的な質問を学びましょう。
壊れたリンクとは何ですか?
壊れたリンク(デッドリンクまたはリンク腐敗)は、動作しないウェブサイト上のリンクです(すなわち。 以下の理由のうちの一つ以上のために、それが意図されているページにリダイレクトされません)。
- コピー先のwebページが利用できなくなりました(オフラインまたは永久に移動)。
- リダイレクトを追加せずに移動先のwebページが移動されました。
- ウェブページのURL構造(パーマリンク)を変更しました。
- 無効なURL(スペルミス、タイプミスなど))は、ソースのwebページに記載されています。
- ファイアウォールまたは地理位置情報の制限のため。
2xxのHTTPステータスコードを持つURLは有効であり、4xxおよび5xxのHTTPステータスコードを持つUrlは無効です。 クライアント側のエラーが原因である4xxステータスコードに直面し、ステータスコードが5xxである場合、サーバー応答エラーが原因であることを意味します。
なぜリンク切れをチェックするのですか?
Webserversは、ユーザーが壊れたリンクにアクセスしようとするとエラーメッセージを返します。 ユーザーが壊れたリンクをクリックすると、エラーページに誘導されます。 これは悪いユーザー体験につながります。 私たちは、継続的にそれらを処理し、当社のウェブサイト上の既存の壊れたリンクを削除する必要があります。 私達はこのプロセスを手動でしてもいいです。 ほとんどのウェブサイトには数百または数千のリンクがあり、それらのすべてを手動でテストすることはできません。 それは膨大な時間、リソース、および労力を必要とします。 手動で検査する代わりに、Selenium WebDriverを活用して壊れたリンクをテストできます。
お見逃しなく:手動テストと自動テスト–違い誰もが知っておくべき
壊れたリンクと画像を確認する方法
壊れたリンクを確認するには、以下の手順に従
- すべてのリンクは、webページ上のリンク<a>または画像<img>のいずれかでタグ付けされています。 タグ<a>、<img>
- に基づいてリンクを収集し、HTTP要求を送信し、すべてのリンクのHTTP応答コードを読み取ります。
このようにして、応答コードに基づいてリンクが有効か無効かを調べることができます。
Selenium WebDriverを使用して壊れたリンクを見つける
重要なテストケースの1つは、webページ上の壊れたリンクを見つけることです。 壊れたリンクの存在のために、あなたのウェブサイトの評判が破損して取得し、あなたのビジネスにマイナスの影響があるでしょう。 リリース前にすべての壊れたリンクを見つけて修正することは必須です。 リンクが機能していない場合は、404ページが見つかりませんというメッセージが表示されます。
HTTPステータスコードのいくつかを見てみましょう。
以下のコードは、特定のウェブサイトのすべてのリンクを取得します(つまり、SoftwareTestingMaterial。com)を使用してWebDriverコマンドを実行し、HttpURLConnectionクラスの助けを借りて各hrefリンクのステータスを読み取ります。
HttpURLConnectionの詳細についてはここをクリックしてください
プログラム自体内のコメント欄に明確な説明を与えられました。 流れを理解するためにそれを通過してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
パッケージsoftwareTestingMaterial;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class BrokenLinks {
public static void main(String args) throws InterruptedException {
//Instantiating FirefoxDriver
System.setProperty(“webdriver.gecko.driver”, “D:\\Selenium環境\\ドライバ\\geckodriver。exe”);
WebDriverドライバ=新しいFirefoxDriver();
//ブラウザ
ドライバを最大化します。管理().ウィンドウ()。最大化();
//10秒
ドライバを暗黙的に待機します。管理().タイムアウト()。(10,タイムユニット.秒);
//起動するにはsoftwaretestingmaterial.com
取得(“https://www.softwaretestingmaterial.com”);
//5秒
スレッドを待ちます。睡眠(5000);
//tagNameメソッドを使用して、tagName”a”を持つアイテムのリストを収集しました
//findElements-現在のページにあるすべての要素を検索します。 すべてのwebelementsのリスト、または
List<webelement>links=driverに一致するものがない場合は空のリストを返します。findElements(By.tagName(“a”));
//リンクの総数を印刷するには
システム。出ろprintln(“合計リンクは”+リンクです。サイズ());
//
for(int i=0;i<リンクへのループに使用されます。サイズ();i++){
WebElement要素=リンク。取得(i);
//”href”属性を使用すると、requriedリンクのurlを取得できます
String url=element。getAttribute(“href”);
//ここでverifyLink()メソッドを呼び出します。 上記のリンクで収集したurlとしてパラメータを渡す
//以下のverifyLink(url)メソッドの詳細な機能を参照してください
verifyLink(url));
}
}
// 以下の関数verifyLink(String urlLink)は、壊れたリンクを検証し、サーバーの状態を返します。
public static void verifyLink(文字列urlLink) {
//壊れたリンク分析を続行するには、try catchブロックにコードを保持してください
try{
//URLクラスを使用します-URLクラスのオブジェクトを作成し、urlLinkをパラメー);
// URLオブジェクト(リンク)
HttpURLConnection httpConn=(HttpURLConnection)linkを使用して接続を作成します。openConnection();
//タイムアウトを2秒
httpConnに設定します。setConnectTimeout(2000);
//接続メソッド
httpConnを使用して接続します。接続();
//応答コードを取得するには、getResponseCode()を使用します。
if(httpConn.getResponseCode()== 200) {
システム。出ろprintln(urlLink+”-“+httpConn.getResponseMessage());
}
if(httpConn.getResponseCode()== 404) {
システム。出ろprintln(urlLink+”-“+httpConn.getResponseMessage());
}
}
//getResponseCodeメソッドは、=IOExceptionを返します-サーバーへの接続でエラーが発生した場合。
キャッチ(例外e) {
//e.printStackTrace();
}
}
}
|
「Selenium WebDriverを使用した壊れたリンクの検索」に関するこの投稿が助けになった場合は、他の人と共有しても構いません。
あなたはの通常の読者ではない場合SoftwareTestingMaterial.com それから私は非常に下のリンクを使用して自由な電子メールの時事通信のためにサインアップするために推薦する。