Selenium NUnit の例を使用した C# チュートリアル

Selenium 概要

Selenium オープンソースのウェブです 自動化テスト 複数のブラウザと複数のオペレーティングシステムをサポートするツール。テスターは複数のプログラミング言語を使用できます。 Java、C#、 Python、.Net、Ruby、PHP、および Perl を使用して自動テストをコーディングします。

C# の概要

C#は、 C++ と JavaC#を使用すると、開発者は.Netプラットフォーム上でVisual Studioを使用してアプリケーションを構築できます。主な機能は次のとおりです。 C#.

  1. オブジェクト指向プログラミング言語です
  2. コンソール、Windows、Webベースのアプリケーションの開発をサポートします。
  3. カプセル化、継承、ポリモーフィズムなどの機能を提供します。

C# の基本構文

C#のプログラムには次のセクションが含まれている必要があります

  1. 名前空間宣言
  2. クラス
  3. クラスの属性とメソッド
  4. 主な方法
  5. プログラムステートメント

例 -

以下はサンプルです Selenium システム コンソールに「Guru99」というテキストを表示する C# サンプル プログラム。

using System;
namespace FirstProgram {
class DemoPrint {
static void main(){
    Console.WriteLine("Guru99");
	}
  }
}

説明:

  • 上記の名前空間 Selenium C# の例は、複数のクラスのコレクションです。各名前空間はキーワード「using」を使用して宣言する必要があります。
  • コードの最初のステートメントには、名前空間「System」がプログラムに含まれています。 システム名前空間は、C# で使用される基本的なクラスとイベントを定義します。 使用する名前空間はプログラムの要件によって異なります。
  • XNUMX 番目のステートメントは、クラス「DemoPrint」の名前空間「FirstProgram」を宣言しています。 AC# ファイルには、同じ名前空間内に複数のクラスを含めることができます。
  • XNUMX 番目のステートメントにはクラス宣言が含まれています。 クラスには複数の属性と複数のメソッドが含まれる場合があります。
  • XNUMX 番目のステートメントには、Main メソッドの宣言が含まれています。 main メソッドは、各クラスの実行のエントリ ポイントです。
  • 最後のステートメントは、ステートメントをコンソールに出力するために使用される C# 構文です。 WriteLine は、クラス「Console」のメソッドです。

Selenium C# セットアップあり

Visual Studioの設定方法 Selenium ウェブドライバー:

今これで Selenium C#チュートリアルでは、Visual Studioをセットアップする手順を段階的に学びます。 Selenium ウェブドライバー:

Visual Studioは、開発者が複数のプラットフォームにまたがるアプリケーションを構築するために使用する統合開発環境(IDE)です。 Windows, Android、iOS およびクラウドベースのアプリケーション。

ステップ1) URLに移動します

https://visualstudio.microsoft.com/downloads/ をクリックします '無料ダウンロード' Visual Studio Community タブに表示されるボタン

Visual Studioをセットアップする Selenium webdriver

ステップ2) ダウンロードしたexeを開きます。 管理者権限を求められたら、「はい」をクリックします。

Visual Studioをセットアップする Selenium webdriver

ステップ3) 以下のポップアップが表示されます。 「続行」ボタンをクリックします。

Visual Studioをセットアップする Selenium WebDrive

以下のポップアップに示されているように、ファイルがダウンロードされます。

Visual Studioをセットアップする Selenium WebDrive

ステップ4) 次の画面で、

チェックボックスを選択してください

  • ユニバーサル Windows プラットフォーム開発
  • .Netデスクトップ開発

「インストール」をクリックします。

Visual Studioをセットアップする Selenium WebDrive

各コンポーネントのインストールが完了するまで待ちます。 ファイルのサイズは 16GB なので時間がかかります。

Visual Studioをセットアップする Selenium WebDrive

ステップ5) 以下のポップアップが表示されます。「再起動」ボタンをクリックします。

Visual Studioをセットアップする Selenium WebDrive

ステップ6) マシンを再起動したら、スタート メニューで「Visual Studio」を検索し、検索結果をクリックします。次のポップアップが表示されます。既存のアカウントがない場合は、「今はしない、後で」リンクをクリックします。

Visual Studioをセットアップする Selenium WebDrive

ステップ7) 次の画面で、

  • 好みのカラーテーマを選択してください
  • 「Visual Studioを起動」ボタンをクリックします。

Visual Studioをセットアップする Selenium WebDrive

ステップ8) Visual Studio の「はじめに」画面が表示されます。

Visual Studioをセットアップする Selenium WebDrive

Visual Studio で新しいプロジェクトを作成します。

ステップ1) [ファイル]メニューで、[新規作成] > [プロジェクト]をクリックします。

Visual Studioで新しいプロジェクトを作成する

ステップ2) 次の画面で、

  1. 「Visual C#」オプションを選択します。
  2. 「コンソール アプリ (.Net Framework)」をクリックします。
  3. 名前を「Guru99」と入力します
  4. [OK]をクリックします。

Visual Studioで新しいプロジェクトを作成する

ステップ3) プロジェクトが正常に作成されると、以下の画面が表示されます。

Visual Studioで新しいプロジェクトを作成する

Visual Studioをセットアップする Selenium ウェブドライバー:

ステップ1) [ツール] -> [N] に移動します。uGet パッケージマネージャー -> Nの管理uGet ソリューションのパッケージ

Visual Studioをセットアップする Selenium webdriver

ステップ2) 次の画面で

  1. 検索する Selenium 結果の画面上で
  2. 最初の検索結果を選択
  3. プロジェクトのチェックボックスをチェックする
  4. 「インストール」をクリックします

Visual Studioをセットアップする Selenium webdriver

ステップ3) ポップアップ画面で「OK」ボタンをクリックします

Visual Studioをセットアップする Selenium webdriver

ステップ4) パッケージが正常にインストールされると、以下のメッセージが表示されます。

Visual Studioをセットアップする Selenium webdriver

NUnit フレームワーク: 概要

NUnit は、 単体テスト Visual Studioでサポートされているフレームワークと Selenium WebDriver。NUnit は、.Net アプリケーションで最も広く使用されているユニット テスト フレームワークです。NUnit はテスト結果を読み取り可能な形式で表示し、テスターが自動テストをデバッグできるようにします。

これを使用するには、NUnit Framework と NUnit Test Adapter を Visual Studio にインストールする必要があります。

NUnit フレームワークをインストールする手順

今これで Selenium C# チュートリアルで、NUnit フレームワークをインストールするプロセスを学びましょう。

ステップ1) [ツール] -> [N] に移動します。uGet パッケージマネージャー -> Nの管理uGet ソリューションのパッケージ

NUnit フレームワークをインストールする

ステップ2) 次のウィンドウで

  1. NUnitを検索する
  2. 検索結果を選択してください
  3. プロジェクトの選択
  4. インストールをクリックします。

NUnit フレームワークをインストールする

ステップ3) 以下のポップアップが表示されます。 「OK」ボタンをクリックします。

NUnit フレームワークをインストールする

ステップ4) インストールが完了すると、以下のメッセージが表示されます。

NUnit フレームワークをインストールする

NUnit テスト アダプターをダウンロードする手順

この NUnit チュートリアルでは、NUnit テスト アダプターをダウンロードする手順について説明します。

以下の手順は 32 ビット マシンでのみ機能することに注意してください。64 ビット マシンの場合は、以下と同じ手順に従って「NUnit3 テスト アダプター」をダウンロードする必要があります。

ステップ1) [ツール] -> [N] に移動します。uGet パッケージマネージャー -> Nの管理uGet ソリューションのパッケージ。その画面では、

  1. NUnitTestAdapter を検索
  2. 「検索結果」をクリック
  3. プロジェクトの選択
  4. インストールをクリックします。

NUnit テスト アダプターをダウンロード

ステップ2) 確認ポップアップで[OK]をクリックします。インストールが完了すると、次のメッセージが表示されます。

NUnit テスト アダプターをダウンロード

Selenium およびNUnitフレームワーク

Selenium と NUnit フレームワークを統合すると、テスターはさまざまなテスト クラスを区別できるようになります。また、NUnit では、テスターが SetUp、Test、TearDown などのアノテーションを使用して、テストの実行前と実行後にアクションを実行することもできます。

NUnit フレームワークは次のものと統合できます Selenium NUnit テスト クラスを作成し、NUnit フレームワークを使用してテスト クラスを実行します。

この手順の下に Selenium NUnit フレームワークを使用してテスト クラスを作成して実行するには、C# フレームワーク チュートリアルが必要です。

NUnit Test クラスを作成する手順 Selenium:

ステップ1) ソリューション エクスプローラーで、プロジェクトを右クリック > [追加] > [クラス]

NUnit テスト クラスを作成する Selenium

ステップ2) クラス作成ウィンドウが表示されます。

  1. クラスに名前を付けます
  2. 「追加」ボタンをクリックします

NUnit テスト クラスを作成する Selenium

ステップ3) 以下の画面が表示されます。

NUnit テスト クラスを作成する Selenium

ステップ4) 作成したクラスに次のコードを追加します。Chrome ドライバーの初期化中に 'chromdriver.exe' ファイルの場所を指定する必要があることに注意してください。

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class Guru99Demo						
    {
        IWebDriver driver;

        [SetUp]
		public void startBrowser()
        {
            driver = new ChromeDriver("D:\\3rdparty\\chrome");
        }

        [Test]
		public void test()
        {
            driver.Url = "http://www.google.co.in";
        }

        [TearDown]
		public void closeBrowser()
        {
            driver.Close();
        }

    }
}

ステップ4) 「ビルド」→「ソリューションのビルド」をクリックします。

NUnit テスト クラスを作成する Selenium

注: ビルド時に「エントリ ポイントに適した静的な 'main' メソッドが含まれていません」のようなエラーが表示される場合があります。

NUnit テスト クラスを作成する Selenium

これを解決するには、[プロジェクト] > [プロパティ] に移動し、出力タイプを「クラス ライブラリ」に変更します。 デフォルトは「コンソールアプリケーション」です。

NUnit テスト クラスを作成する Selenium

ステップ5) ビルドが成功したら、[テスト エクスプローラー] ウィンドウを開く必要があります。 「テスト」をクリックします -> Windows -> テストエクスプローラー

NUnit テスト クラスを作成する Selenium

ステップ6) [テスト エクスプローラー] ウィンドウが開き、使用可能なテストのリストが表示されます。 テスト エクスプローラーを右クリックし、[選択したテストの実行] を選択します。

NUnit テスト クラスを作成する Selenium

ステップ7) Selenium 指定された URL でブラウザを開いてブラウザを閉じる必要があります。テスト エクスプローラー ウィンドウで、テスト ケースのステータスが「合格」に変更されます。

NUnit テスト クラスを作成する Selenium

Selenium C# の WebDriver コマンド

C#はブラウザとのやりとりに「IWebDriver」インターフェースを使用します。以下は、C#で使用できるコマンドのカテゴリです。 Selenium C# で。

  1. ブラウザコマンド
  2. Web 要素コマンド
  3. ドロップダウンコマンド

今すぐ Selenium C Sharp チュートリアル、勉強しましょう Selenium WebDriver コマンドを 1 つずつ

ブラウザコマンド:

以下はC#で使用できるブラウザコマンドの一覧です。 Selenium.

コマンド名 説明 構文
URLコマンド このコマンドは、指定された URL をブラウザで開くために使用されます。
driver.Url = "https://www.guru99.com"
タイトルコマンド このコマンドは、現在開いている Web ページのページ タイトルを取得するために使用されます。
String title = driver.Title
ページソースコマンド このコマンドは、現在開いている Web ページのソース コードを取得するために使用されます。
String pageSource = driver.PageSource
閉じるコマンド このコマンドは、最近開いたブラウザ インスタンスを閉じるために使用されます。
driver.Close();
コマンドを終了する このコマンドは、開いているすべてのブラウザ インスタンスを閉じるために使用されます。
driver.Quit();
バックコマンド このコマンドは、ブラウザ履歴の前のページに移動するために使用されます。
driver.Navigate().Back();
前進コマンド このコマンドは、ブラウザ履歴の次のページに移動するために使用されます。
driver.Navigate().Forward()
リフレッシュコマンド このコマンドはブラウザの更新を実行するために使用されます。
driver.Navigate().Refresh()

Web 要素コマンド

Web 要素は、Web ページ上のすべての要素を表します。これらは HTML タグで表されます。ボタン、テキスト ボックス、リンク、画像、表、フレームはすべて Web 要素に該当します。 Operaウェブ要素に対する操作は、IWebelementインターフェースを使用して実行できます。ウェブ要素を操作するには、ウェブページ上の要素を見つけて、それに対して操作を実行する必要があります。FirebugやFirepathなどのツールを使用すると、 Xパス ヴェーベレメントの。

以下は、C# で使用できる Webelement コマンドのリストです。

コマンド名 説明 構文
クリックコマンド このコマンドは、Web 要素をクリックするために使用されます。要素をクリック可能にするには、要素が Web ページに表示されている必要があります。このコマンドは、チェックボックスやラジオ ボタンの操作にも使用されます。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
クリアコマンド このコマンドは、テキスト ボックスの既存の内容をクリアするために特に使用されます。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
SendKeys コマンド このコマンドはテキストボックスに値を入力するために使用されます。入力する値はパラメータとして渡す必要があります。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
表示されたコマンド このコマンドは、特定の要素が Web ページに表示されているかどうかを識別するために使用されます。このコマンドは、Web 要素の可視性に応じて、ブール値 (true または false) を返します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;
有効なコマンド このコマンドは、特定の Web 要素が Web ページ上で有効になっているかどうかを識別するために使用されます。 このコマンドはブール値を返します。 結果として true または false。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;
選択されたコマンド このコマンドは、特定の Web 要素が選択されているかどうかを識別するために使用されます。このコマンドは、チェックボックス、ラジオ ボタン、および選択操作に使用されます。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
コマンドを送信します: このコマンドは click コマンドに似ていますが、違いは HTML フォームに「送信」タイプのボタンがあるかどうかです。 click コマンドは任意のボタンをクリックしますが、submit コマンドはタイプが submit のボタンのみをクリックします。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
テキストコマンド このコマンドは、Webelement の内部テキストを返します。 このコマンドは結果として文字列値を返します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
タグ名コマンド このコマンドは、Web 要素の HTML タグを返します。 結果として文字列値を返します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  String tagName = element.TagName;
GetCSSValue コマンド: このメソッドは、Web 要素の色を rgba 文字列 (赤、緑、青、アルファ) の形式で返すために使用されます。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String color = element.getCSSValue;

出力– 要素の色が赤の場合、出力は rgba(255,0,0,1) になります。

ドロップダウンコマンド:

C# でのドロップダウン操作は、SelectElement クラスを使用して実現できます。

以下は、C# で使用できるさまざまなドロップダウン操作です。

コマンド名 説明 構文
SelectByText コマンド このコマンドは、オプションのテキストに基づいてドロップダウンのオプションを選択します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
SelectByIndex コマンド このコマンドは、インデックスに基づいてオプションを選択するために使用されます。 ドロップダウンのインデックスは 0 から始まります。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
SelectByValue コマンド このコマンドは、オプション値に基づいてオプションを選択するために使用されます。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
オプションコマンド このコマンドは、ドロップダウンに表示されるオプションのリストを取得するために使用されます。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
List<IWebelement> options = select. Options;
int size = options.Count;
for(int i=0;i<options.size();i++)
{
String value = size.elementAt(i).Text;
Console.writeLine(value);
}

上記のコードは、すべてのオプションをドロップダウン内のコンソールに出力します。

IsMultiple コマンド このコマンドは、ドロップダウンが複数選択ドロップダウンかどうかを識別するために使用されます。 複数選択ドロップダウンを使用すると、ユーザーはドロップダウンで一度に複数のオプションを選択できます。 このコマンドはブール値を返します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
すべての選択解除コマンド このコマンドは複数選択ドロップダウンで使用されます。 すでに選択されているオプションをクリアします。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
DeSelectByIndex コマンド このコマンドは、インデックスを使用して、すでに選択されている値の選択を解除します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
DeSelectByValue コマンド このコマンドは、その値を使用して、すでに選択されている値の選択を解除します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
DeSelectByText コマンド このコマンドは、テキストを使用して、すでに選択されている値の選択を解除します。
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

コードサンプル

例 1: XPATH ロケーターを使用してリンクをクリックします。

テストシナリオ:

  1. Demo Guru99 Web ページに移動します – https://demo.guru99.com/test/guru99home/
  2. ウィンドウを最大化する
  3. 「テスト」メニューをクリックします
  4. ブラウザを閉じます
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("D:\\3rdparty\\chrome");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();
            IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a"));
            link.Click();
            m_driver.Close();
        }
    }
}

例 2: テキストへのデータの入力Box XPATH ロケーターを使用してボタンをクリックします。

テストシナリオ:

  1. Guru 99 デモページに移動します – https://demo.guru99.com/test/guru99home/
  2. メールのテキストボックスにデータを入力する
  3. サインアップボタンをクリックします
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']"));
            IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();
                        
        }
    }
}			

例 3: テキストへのデータの入力Box CSS ロケーターを使用してボタンをクリックします。

テストシナリオ:

  1. Guru 99 デモページに移動します – https://demo.guru99.com/test/guru99home/
  2. メールのテキストボックスにデータを入力する
  3. サインアップボタンをクリックします
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]"));
            IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();

             
        }
    }
}

例 4: ドロップダウンで値を選択します。

テストシナリオ:

  1. Guru 99 デモページに移動します – https://demo.guru99.com/test/guru99home/
  2. ソフトウェアの制限をクリック SAP
  3. 名前とメールのテキストボックスにデータを入力します
  4. 「コース」ドロップダウンから値を選択します
  5. ブラウザを閉じます
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;


namespace Guru99Demo
{
	class TestSelect						
    {
        IWebDriver m_driver;

        [Test]
		public void selectDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

            IWebElement course = m_driver.FindElement(By.XPath(".//*[@id='awf_field-91977689']"));

			var selectTest = new SelectElement(course);
			// Select a value from the dropdown				
            selectTest.SelectByValue("sap-abap");
                        
        }
    }
}

まとめ

  • 使用するために Selenium C# を使用した WebDriver では、Visual Studio をインストールする必要があります。
  • NUnitはVisual Studioでサポートされているユニットテストフレームワークであり、 Selenium ウェブドライバー
  • これを使用するには、NUnit Framework と NUnit Test Adapter を Visual Studio にインストールする必要があります。
  • NUnit フレームワークは次のものと統合できます Selenium NUnit テスト クラスを作成し、NUnit フレームワークを使用してテスト クラスを実行します。
  • NUnit を使用すると、テスターは SetUp、Test、TearDown などのアノテーションを使用して、テストの実行前後にアクションを実行できます。
  • Selenium WebDriver コマンドは、ブラウザ コマンド、Webelement コマンド、およびドロップダウン コマンドに分類できます。