でプロキシ認証を処理する方法 Selenium ウェブドライバー

⚡ スマートサマリー

プロキシ認証 Selenium WebDriverは、ブラウザがセキュアなプロキシサーバー経由で接続する際に表示される認証情報ポップアップを処理します。 Selenium ネイティブダイアログを直接操作することはできませんが、AutoItツールと組み込みアラートを使用する2つの方法があります。

  • 🛡️ プロキシの役割: プロキシとは、プライバシー、セキュリティ、コンテンツフィルタリングといった機能を追加する仲介役のことです。
  • 🔀 SOCKS vs HTTP: SOCKSはデータを解釈しません。HTTPプロキシはHTTPリクエストのみを読み取ります。
  • 🪟 ネイティブポップアップ: Selenium オペレーティングシステムのダイアログを処理できないため、外部からの支援が必要です。
  • 🛠️ AutoItメソッド: コンパイルされたAutoItスクリプトが、ユーザー名とパスワードをポップアップに送信します。
  • 🚨 アラート方法: アラートに切り替えてsendKeysで認証情報を送信し、承認します。

プロキシ認証を処理する Selenium webdriver

プロキシとは何ですか?

プロキシは、リクエストを送信するクライアントとサーバーが応答する間の仲介者として機能します。 プロキシの主な用途は、複数の対話型システム間のプライバシーとカプセル化を維持することです。

プロキシは、クライアントと Web サーバー間のファイアウォールとして機能することにより、Web 上に別のセキュリティ層を追加することもできます。 これは、クライアントが使用する Web サイトに、Web サイトのコンテンツに基づいて許可またはブロックのラベルを付ける必要がある場合に特に使用されます。

このプロセスは「コンテンツ フィルタリング」として知られており、教育機関や企業オフィスなどで最も一般的に使用されています。コンテンツ フィルタリングは、プロキシの助けを借りて簡単に実行できます。 インターネットに関して言えば、プロキシは、クライアント マシンと、応答する実際の Web サーバーまたはデータベース サーバーの間に立つ別個のサーバーとして実装できます。

SOCKS と HTTP プロキシの違い

SOCKS HTTPプロキシ
SOCKS はセキュアソケットの略です。 通常、クライアントとサーバー間のファイアウォールとして使用されます。 HTTP プロキシはクライアントとサーバー間のファイアウォールとしても使用できますが、HTTP リクエストにのみ使用できます。
SOCKS は交換されるデータを解釈しません HTTP プロキシは、クライアントとサーバー間で交換されるデータを解釈します。
パフォーマンスの点で遅い SOCKSと比較して優れたパフォーマンス

でプロキシを処理する方法 Selenium Chrome のウェブドライバー

HTTP プロキシ認証 Selenium Chromeでは以下の方法で対処できます

  • AutoItツールを使用する
  • アラートの使用

AutoItツールを使用する

AutoItは、Windowsデスクトップの自動化に使用されるサードパーティ製ツールです。 Selenium ウェブベースのポップアップとウィンドウのみを処理し、オペレーティングシステムのコントロールを処理することはできません。 Selenium.

これには、AutoItなどの外部サードパーティツールを統合する必要があります Seleniumそのため、AutoItはウェブサイト上でのファイルアップロードやファイルダウンロードの処理に最も一般的に使用されています。

AutoItを使用するには、AutoItソフトウェアをローカルマシンにダウンロードしてインストールする必要があります。

AutoItのダウンロードとインストールについては、 記事.

[プログラム] – [Autoit ツール] – [SciTE Script Editor] を開き、以下の AutoIt スクリプトを Autoit エディタに追加し、システムに「ProxyAuthentication.au3」として保存します。

ファイルをコンパイルし、「ProxyAuthentication.exe」として変換します。

In EclipseAutoIt ファイルを追加して Selenium スクリプトを作成して実行する

以下はHTTPプロキシ認証用のAutoItスクリプトです。

Send("guru99{ENTER}")
Send("guru99{ENTER}")

AutoIt ファイルを渡す必要があります。 Selenium 以下のコードを使用したウェブドライバー

ソース Code:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutoItDemo {
    public static void main(String[] args) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        //Passing the AutoIt Script to Selenium	
        Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe");
    }
}

Code 説明:

  • 最初のステップでは、chromedriver.exe ファイルを指すようにシステム プロパティを設定して、Chrome ドライバーのインスタンスを初期化します。
  • 2番目のステップでは、WebDriverのオブジェクトを初期化し、Webサイトを渡します。 URL getメソッドを使用する
  • 最後に、AutoItスクリプトファイルを使用して、ユーザー名とパスワードをHTTPプロキシ認証ポップアップに渡します。

Code 出力:

AutoItを使用したユーザー名アラートの処理
AutoItを使用したユーザー名アラートの処理
AutoItを使用したパスワードアラートの処理

AutoItを使用したパスワードアラートの処理
プロキシ認証成功画面

プロキシ認証成功画面

アラートの使用

アラートは、によって提供されるシンプルな組み込み機能です。 Selenium ウェブドライバー。次を使用してプロキシ認証ポップアップを処理できます。 Selenium Web ドライバーを使用するには、HTTP プロキシ認証アラートに切り替え、ユーザー名とパスワードをアラートに直接渡します。キー送信メソッドを使用します。

例::

テストシナリオ:

Web サイト上の HTTP プロキシ認証ポップアップを処理します。 https://demo.guru99.com/test/basic_auth.php でのアラートの使用 Selenium ウェブドライバー。

ソースコードの例:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AlertsDemo {
    public static void main(String args[]) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\Data_Personal\\Software\\chromedriver_win32\\chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        // Handling Username alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
        // Handling Password alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
    }
}

Code 出力

プロキシ認証が正常に完了しました。

Code 説明:

  • 最初に、chromedriver.exe ファイルの場所を指すように webdriver プロパティを設定することで、Chrome ドライバーのインスタンスをインスタンス化します。
  • 次に、 URL 必要なウェブサイトを通過することで URL driver.get() メソッドのパラメータとして
  • Once URL アラートが開かれ、ユーザー名アラートに切り替えてユーザー名「guru99」を送信します。次に、alert.accept メソッドを使用してアラートの OK ボタンをクリックします。
  • 次に、パスワード アラートに切り替えて、パスワード (guru99) を送信します。 次に、alert.accept メソッドを使用してアラートの [OK] ボタンをクリックします。

よくあるご質問

認証情報を https://user:pass@site.com のように埋め込むことはできますが、最新の Chrome と Firefox セキュリティ上の理由から、これをブロックしてください。プロキシ認証には、アラートまたはブラウザ拡張機能の方がより信頼性が高くなっています。

AutoItは自動化します Windows デスクトップコントロール Selenium ネイティブ認証ポップアップやファイルアップロードダイアログなど、アクセスできないもの。AutoIt スクリプトを実行可能ファイルにコンパイルし、そこから呼び出します。 Selenium コー​​ド。

プロキシは、特定のアプリケーションやブラウザのトラフィックを迂回させ、主にIPアドレスを隠したりコンテンツをフィルタリングしたりします。VPNは、デバイス全体のトラフィックを暗号化するため、標準的なプロキシよりも強力なプライバシー保護を提供します。

はい。AIを活用したテストツールは、認証ダイアログを検出し、保存された認証情報を挿入し、ポップアップの動作が変更された際に自己修復するため、ブラウザ間で脆弱なAutoItスクリプトに依存する必要がなくなります。

AIツールは、プロキシをインテリジェントにローテーションし、ブロックされたリクエストを検出し、認証プロンプトが表示された際の待機時間を調整します。この自動化により、企業プロキシやコンテンツフィルタリングプロキシの背後にあるサイトのテスト安定性が向上します。

Yes. Selenium バージョン4ではChrome DevToolsプロトコルのサポートが追加され、HTTP認証情報をプログラムで設定したり、基本認証を処理したりできるようになり、多くのプロキシシナリオでAutoItを使用する必要がなくなりました。