how run selenium webdriver different popular browsers
SeleniumはWebベースのアプリケーションのみをサポートしており、それらを開くにはブラウザーが必要です。 Seleniumは、テスト自動化のためにさまざまなブラウザーをサポートできます。
このチュートリアルでは、市場で入手可能なさまざまなブラウザー用のドライバーをセットアップする方法について説明します。
現在の業界では、広く使用されている人気のあるブラウザは、Google Chrome、Mozilla Firefox、InternetExplorerの3つだけです。ただし、Seleniumは他のブラウザーもサポートしています。さまざまなブラウザーでスクリプトを実行するには、そのブラウザーのドライバーが必要です。
学習内容:
さまざまなブラウザ用のドライバを設定する方法
推奨ツール:
#1)LambdaTest
スケーラブルで安全かつ信頼性の高いクラウドベースのSeleniumグリッドでSelenium自動化テストをオンラインで実行します。 Seleniumテストの自動化を加速すると同時に、2000以上のデスクトップおよびモバイルブラウザー環境のオンラインインフラストラクチャでテストすることにより、テストカバレッジを拡大します。
Seleniumの自動化を最初に開始したとき、コードの最初の行は次のようになります。
WebDriverドライバー=新しいFireFoxDriver();
これは、WebDriverがインターフェイスであり、タイプがインターフェイスである参照変数(ドライバー)を定義していることを意味します。
ここで、割り当てるオブジェクトは、クラスのインスタンス(FireFoxDriver)またはそのインターフェイスを実装するその他のドライバーである必要があります。この場合、FireFoxDriverはクラスであり、インターフェイスはWebDriverです。
すべてのドライバーのセットアップが完了したら、次のようなSeleniumコマンドを実行します。
driver.getTitle();
スクリーンショットを参照してください:
に使用されるapkファイルは何ですか
現在、内部でHTTPリクエストが作成され、定義した特定のブラウザドライバーに送信され、ブラウザドライバーはそのHTTPサーバーを使用してHTTPリクエストを取得し、Seleniumコマンドの実装に必要な手順を決定します。
作成したロジックはブラウザで実行され、実行結果はHTTPサーバーに返送され、ステータスが自動化スクリプトに返送されます。
したがって、ドライバーを設定した後、次のようなドライバーのクラスのすべての組み込みメソッドにアクセスできます。
- findElement();
- 閉じる();
- getClass(); などなど
スクリーンショットを参照してください:
これらのメソッドにアクセスするには、「 運転者。 」をエディターに表示すると、すべてのメソッドが表示されます。そうでない場合は、「ctrl + space」を押すとメソッドが表示されます。
スクリーンショットを参照してください:
「ctrl + space」を押すと、組み込みメソッドにアクセスできない場合があります。次に、環境変数で行われたJAVA_HOMEパス設定をチェックし、それらが正しいことを確認する必要があります。
環境変数を設定する手順:
- (コントロールパネル)-> (システム)をクリックします
- (システムの詳細設定)に移動します
- (環境変数)ボタンをクリックします
- 新しいボタンをクリックしてJAVA_HOMEパスを設定します。
Seleniumには、Selenium WebDriverjarファイルにバンドルされているデフォルトのMozillaFirefoxドライバーが付属しています。そのため、Firefoxドライバーを呼び出す場合、セットアップは必要ありません。他のブラウザを使用する場合は、そのシステムプロパティを設定する必要があります。
推奨読書=> Seleniumグリッドを使用したクロスブラウザテスト
SeleniumWebDriverを使用したクロスブラウザーテスト
ここで、以下のブラウザーでのドライバーのセットアップと実行を確認します。
#1) Mozilla Firefox
#二) グーグルクローム
#3) インターネットエクスプローラ
#4) オペラ
#5) GhostDriverまたはPhantomJS
#6) HTMLユニット
上記のブラウザのドライバ(PhantomJSとHTMLユニットを除く-これらについては以下を確認してください)は、ここからダウンロードできます。 SeleniumHQ
上記のさまざまなブラウザをご存知の方もいらっしゃると思いますが、ここで説明します。 ゴーストドライバー そして HTMLユニットドライバー 機能と、スクリプト用にそれらを設定する方法。
#1)HTMLユニットドライバー
このドライバーを使用すると、ヘッドレスブラウザーテストを実行できます。つまり、内部で実行されているときに表示できるGUIはありません。また、通常のブラウザのようにすべての操作を実行できるわけではありません。
通常、テストにはHTMLユニットドライバーはお勧めしません。ただし、WebDriverの最も高速で軽量な実装がテストデータの生成に使用され、1つのWebページのコンテンツを他のプログラムまたはスクリプトに渡すため、これを使用できます。
HTMLユニットドライバーを使用するために、追加のAPIやjarファイルをインストールする必要はありません。 Seleniumサーバーのスタンドアロンjarファイルがあれば使用できます。
以下のコードを参照してください。
//Create a Java Project, under it create a package, and under package create a class packageheadless_browser_testing; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.htmlunit.HtmlUnitDriver; import org.testng.Assert; import org.testng.annotations.Test; publicclassvefifyTestTitle { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Call HtmlUnit Driver WebDriver driver = newHtmlUnitDriver(true); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //It will fetch the FB title and store in String String facebook_Title= driver.getTitle(); //Assert condition will check the expected and actual title, if it matches //our test passes Assert.assertTrue(facebook_Title.contains('Facebook')); System.out.println(facebook_Title); } }
出力 :Facebook –ログインまたはサインアップ
合格しました :verifyFacebookTitle
HTMLユニットドライバーは、jquery、javascript、またはHTML 5を使用する複雑なアプリケーションには推奨されません。デフォルトでは、javascriptをサポートしていません。したがって、それをサポートするには、条件をtrueにする必要があります。
#2)PhantomJSドライバー
PhantomJSブラウザーは、ヘッドレスブラウザーテストの実行にも使用されます。 JavaScriptAPIを使用します。ヘッドレスウェブサイトのテストやウェブページへのアクセスに使用できます。 HTMLユニットドライバーに対する1つの利点は、スクリーンショットをキャプチャできることです。これは、テストがバックグラウンドで実行され、スクリーンショットがキャプチャされることを意味します。
Selenium WebDriverでPhantomJSブラウザーを使用するには、GhostDriverを使用してダウンロードする必要があります。これは、PhantomJSブラウザー用の単純なJSでのWebDriverワイヤープロトコルの実装です。現在、PhantomJSの最新リリースでは、GhostDriverをPhantomJSと統合していました。したがって、今は個別にインストールする必要はありません。
adobeフラッシュプレーヤーでswfファイルを開く方法
ここからPhantomJs.exeファイルをダウンロードします。 PhantomJs
PhantomJSを実行するには、PhantomJSドライバーが必要です。ダウンロードリンク: PhantomJSドライバー
また、スクリプトを実行するときに、PhantomJs.binary.pathプロパティファイルを設定する必要があります。
以下のコードを参照してください。
//Create a Java Project, then under it create a package, under package create a class packageheadless_browser_testing; import java.io.File; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.phantomjs.PhantomJSDriver; import org.testng.annotations.Test; publicclass phantom_Js_Driver { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Set the path to access the phantomjs.exe file File src = newFile('E:\exe\phantomjs-2.1.1-windows\bin\phantomjs.exe'); //You need to specify the property here and give path of driver System.setProperty('phantomjs.binary.path', src.getAbsolutePath()); //Call your PhantomJs Driver WebDriver driver = newPhantomJSDriver(); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //Print the currentURL of the page System.out.println(driver.getCurrentUrl()); } }
出力 :https://www.facebook.com/
合格:verifyFacebookTitle
#3)MozillaFirefoxドライバー
FirefoxブラウザでWebDriverを実行する方法:
Firefox Driverを呼び出すために、追加のjarファイルをインストールまたは構成する必要はありません。これは、SeleniumWebDriverがサポートするデフォルトのドライバーです。
実行については、以下のコードを参照してください。
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.Assert; public class FF_Driver { @Test public void Test_Gmail_Login() { WebDriver driver = new FirefoxDriver(); driver.get(“http://www.gmail.com”); driver.findElement(By.id('Email')).sendKeys('Enter user name'); driver.findElement(By.id('next')).click(); Thread.sleep(2000); driver.findElement(By.id('Passwd')).sendKeys('Enter Password'); driver.findElement(By.id('signIn')).click(); Thread.sleep(2000); String title_Of_Page = driver.getTitle(); Assert.assertEquals(driver.getTitle(), title_Of_Page); System.out.println('Page title matched'); } }
出力 :ページタイトルが一致しました
合格しました :Test_Gmail_Login
#4)GoogleChromeドライバー
ChromeブラウザでWebDriverを実行する方法:
Google Chromeドライバーを呼び出すには、最初にドライバーをダウンロードしてから、以下のコードを使用してシステムプロパティを設定します。
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.chrome.ChromeDriver; import org.testng.annotations.Test; importjava.util.Iterator; import java.util.Set; public class googleChrome_Driver { @Test public void Test_Rediff_Alert()throws InterruptedException{ //set system property, so that we can access chrome driver System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); // It will open the Chrome browser and execute your logic WebDriverdriver = new ChromeDriver(); //Open rediff page in chrome browser driver.get(“http://www.rediffmail.com”); //wait for page to load Thread.sleep(5000); // It will get and store the main window page handle or id String mainpage = driver.getWindowHandle(); String subwinhandleString = null; //set a loop which will store all window pop up handles Set handle = driver.getWindowHandles(); Iterator iterator = handle.iterator(); while(iterator.hasNext ()) { subwinhandleString = iterator.next( ); } driver.switchTo().window(subwinhandleString); System.out.println(driver.getTitle()); Thread.sleep(2000); driver.close(); //Again switch back to main window driver.switchTo().window(mainpage); System.out.println(driver.getTitle()); } }
出力 :rediff.comへようこそ
Rediff.com:オンラインショッピング、Rediffmail、最新のインドニュース、ビジネス、ボリウッド、スポーツ、株式、ライブクリケットスコア、お金、映画レビュー
合格しました :Test_Rediff_Alert
また読む=> Seleniumチュートリアル– ChromeおよびIEブラウザで要素を見つける
#5)InternetExplorerドライバー
IEブラウザでWebDriverを実行する方法:
Internet Explorer Driverを呼び出すには、ドライバーをダウンロードしてシステムプロパティを設定します。
以下のコードを参照してください。
package Different_Drivers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.Test; public class internetExplorer_Driver { @Test public void ieDriver() throws InterruptedException { //set system property, so that we can access IE driver System.setProperty('webdriver.ie.driver','E\IEDriverServer.exe'); //set desiredcapabilites for calling ie driver DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get('https://www.google.com'); Thread.sleep(5000); String title_Of_Page = driver.getTitle(); System.out.println(title_Of_Page); } }
出力 :グーグル
合格しました :ieDriver
#6)Opera Driver
Opera Driverを呼び出すには、ドライバーをダウンロードしてシステムプロパティを設定します。
以下のコードを参照してください。
package Different_Drivers; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.opera.OperaDriver; import org.testng.annotations.Test; import org.testng.Assert; public class operaDriver { @Test public void createAccount(){ //set system property, so that we can access opera driver System.setProperty('webdriver.opera.driver', 'E:\operadriver.exe'); // it will open the opera browser WebDriver driver = newOperaDriver(); driver.get('https://www.google.com/intl/en/mail/help/about.html'); // Here driver will try to find out create an account link on the application WebElement createAccount = driver.findElement(By.xpath('.//*(@id='gmail-create-account')')); Assert.assertTrue(createAccount.isDisplayed()); //Create Account will be clicked only if the above condition is true createAccount.click(); System.out.println(createAccount.getText()); } }
出力 : アカウントを作成する
合格しました :operaDriver
また読む=> SeleniumでのTestNGアノテーション
結論
このチュートリアルでは、さまざまなブラウザー用のドライバーをセットアップして使用する方法について説明しました。
HTMLユニットドライバーとPhantomJSドライバーが他の一般的に使用されているブラウザーとどのように異なるかを見ました。この背後にある理由は、GoogleChromeなどの一般的なブラウジングには使用されないためです。代わりに、GUIをサポートしていないため、内部で動作し、コマンドをより高速に実行します。 PhantomJSを使用してサーバーサイドスクリプトを実行することもできます。
ドライバーをセットアップしてさまざまなブラウザーで動作させる方法を理解したので、なぜこれを行うのかを明確にする必要があります。ご存知のとおり、SeleniumはWebベースのアプリケーションのみをサポートしており、それらを開くにはブラウザーが必要です。
これらのブラウザーを開くために使用できるさまざまなドライバー(上記で説明)があります。 WebDriverは、WebDriverで定義されているすべての抽象メソッドを含むインターフェイスです。したがって、このチュートリアルで説明するこれらのメソッドを呼び出して、タスクを実行します。
このチュートリアルについて質問/コメントがあればお知らせください。
推奨読書
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- 最初のWebDriverスクリプトの実装– Selenium WebDriverチュートリアル#10
- Seleniumに関するFAQ
- Selenium WebDriverでアラート/ポップアップを処理する方法-Seleniumチュートリアル#16
- Selenium WebDriverでの暗黙的および明示的な待機(Selenium待機のタイプ)
- SeleniumWebDriverでエクステントレポートを生成するためのガイド
- GeckoDriver Seleniumチュートリアル:SeleniumプロジェクトでGeckoDriverを使用する方法