このチュートリアルは、Debian9およびDebian8でChromeDriverを使用してSeleniumをセットアップするのに役立ちます。このチュートリアルには、SeleniumスタンドアロンサーバーとChromeDriverを使用し、サンプルテストケースを実行するJavaプログラムの例も含まれています。
Xvfb(X仮想フレームバッファ)は、UNIXライクなオペレーティングシステム(Linuxなど)用のメモリ内ディスプレイサーバーです。ディスプレイなしでX11ディスプレイサーバープロトコルを実装します。これは、CIサービスなどのCLIアプリケーションに役立ちます。
ステップ1-前提条件
sudo特権ユーザーとしてDebianシステムにログインし、次のコマンドを実行して、システムに必要なパッケージをインストールします。
sudo apt-get update sudo apt-get install -y curl unzip xvfb libxi6 libgconf-2-4
また、システムにJavaをインストールします。以下のコマンドを使用して、システムにOpenJDKをインストールします。DebianシステムにOracleJava8をインストールする場合は
sudo apt-get install default-jdk
ステップ2–GoogleChromeをインストールする
次に、以下のコマンドを使用して、Debianシステムに最新のGoogleChromeをインストールします。 Google Chromeのヘッドレス機能は、自動化のための複数の扉を開きます。
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - sudo echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list sudo apt-get -y update sudo apt-get -y install google-chrome-stable
ステップ3–ChromeDriverをインストールする
ChromeDriverは、Chromium用のWebDriverのワイヤプロトコルを実装するスタンドアロンサーバーです。 WebDriverは、複数のブラウザでWebアプリを自動テストするためのオープンソースツールです。
wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip unzip chromedriver_linux64.zip
最新のChromeDriverは、公式ダウンロードページにあります。次に、以下のコマンドを実行して、システムでChromeDriverを構成します。
sudo mv chromedriver /usr/bin/chromedriver sudo chown root:root /usr/bin/chromedriver sudo chmod +x /usr/bin/chromedriver
ステップ4–必要なJarファイルをダウンロードする
リモートSeleniumWebDriversを実行するには、Seleniumサーバーが必要です。以下のコマンドを使用してSeleniumスタンドアロンサーバーのjarファイルをダウンロードするか、ここにアクセスして最新バージョンのJarファイルを見つける必要があります。
wget https://selenium-release.storage.googleapis.com/3.13/selenium-server-standalone-3.13.0.jar
また、testng-6.8.7.jarファイルをシステムにダウンロードします。
>wget http://www.java2s.com/Code/JarDownload/testng/testng-6.8.7.jar.zip unzip testng-6.8.7.jar.zip
ステップ5–Seleniumサーバー経由でChromeを起動する
サーバーのセットアップの準備ができました。 Xvfbユーティリティを使用してスタンドアロンのSeleniumサーバーからChromeを起動します。
Seleniumサーバー経由でChromeを実行する
xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar
-debug
を使用します コマンドの最後にあるオプションで、サーバーをデバッグモードで起動します。
ヘッドレスChromeDriverを起動することもできます ターミナルで以下のコマンドを入力します。
chromedriver --url-base=/wd/hub
これで、SeleniumサーバーがChromeで実行されます。このサーバーを使用して、GoogleChromeWebブラウザーを使用してSeleniumで記述されたテストケースを実行します。次のステップはオプションのステップであり、ステップ5に依存しません。
ステップ6–サンプルJavaプログラム(オプション)
これはオプションの手順です。 SeleniumスタンドアロンサーバーとChromeDriverを使用して単一のテストケースを実行する方法について説明します。 SeleniumサーバーとChromeドライバーを使用してJavaプログラムを作成しましょう。このJavaプログラムは、指定されたWebサイトのURLを開き、定義された文字列がWebページに存在するかどうかを確認します。
テキストエディタでファイルを編集してJavaプログラムを作成します。
vim TecAdminSeleniumTest.java
以下のコンテンツをファイルに追加します。
Java
123456789101112131415161718192021222324252627 | import java.io.IOException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class TecAdminSeleniumTest {public static void main(String [] args)throws IOException、InterruptedException {System.setProperty( "webdriver.chrome.driver"、 "/ usr / bin / chromedriver"); ChromeOptions chromeOptions =new ChromeOptions(); chromeOptions.addArguments( "-headless"); chromeOptions.addArguments( "-no-sandbox"); WebDriverドライバー=新しいChromeDriver(chromeOptions); driver.get( "https://google.com"); Thread.sleep(1000); if(driver.getPageSource()。contains( "I'm Feeling Lucky")){System.out.println( "Pass"); } else {System.out.println( "Fail"); } driver.quit(); }} |
URL「https://google.com」を他の任意のURLに変更してから、上記のJavaプログラムで使用されている「I’mFeelingLucky」のような検索文字列も変更できます。 Javaプログラムを保存して実行します。まず、selenium-server-standalone.jarとtestng-6.8.7.jarを含むJavaCLASSPATH環境変数を設定する必要があります。次に、Javaプログラムをコンパイルして実行します。
export CLASSPATH=".:selenium-server-standalone.jar:testng-6.8.7.jar" javac TecAdminSeleniumTest.java java TecAdminSeleniumTest
以下のような結果が表示されます。定義された検索文字列が見つかった場合は「合格」というメッセージが表示され、ウェブページに文字列が見つからなかった場合は画面に「不合格」というメッセージが表示されます。