Selenium C#チュートリアル:NUnitフレームワークとサンプル

⚡ スマートサマリー

Selenium WebDriverはIWebDriverインターフェースを介してC#からブラウザを操作し、NUnitはテスト属性、アサーション、およびテストエクスプローラーのレポート機能を提供することで、これらのブラウザ操作を再現可能な自動テストに変換します。

  • 🔘 ツールチェーン: Visual Studio と Selenium WebDriver、NUnit、NUnitテストアダプタNuGet パッケージ。
  • ☑️ プロジェクトのセットアップ: 出力タイプは「クラスライブラリ」でなければならず、「コンソールアプリケーション」ではビルドが失敗します。
  • ✅ NUnit属性: SetUpはブラウザを開き、Testはアクションを実行し、TearDownはブラウザを閉じます。
  • 🧪 コマンドグループ: ブラウザコマンド、WebElementコマンド、およびSelectElementを介したドロップダウンコマンド。
  • 🛠️ ロケーター: FindElementは、あらゆる要素操作においてXPathとCSSセレクタ戦略を受け入れます。
  • ⚡ 実行: テストエクスプローラーはクラスを実行し、各結果を合格または不合格として報告します。

Selenium NUnitテストフレームワークを使用したC#による自動化

Selenium 概要

Selenium オープンソースのウェブです 自動化テスト 複数のブラウザと複数のオペレーティングシステムをサポートするツール。テスターは複数のプログラミング言語を使用できます。 Java、C#、 Python自動テストのコーディングには、Ruby、PHP、Perl を使用します。このツールを初めて使用する場合は、 Selenium チュートリアル WebDriver 対 Selenium RC比較.

Selenium ブラウザの制御はブラウザが提供するものであり、それを操作する言語は構造を提供する。

C# の概要

C#は、 C++ (NAIST) と JavaC# を使用すると、開発者は .NET プラットフォーム上で Visual Studio を使用してアプリケーションを構築できます。以下は、 C#.

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

配線前に Selenium プレーンなC#プログラムの形状を認識することは、その場合役立ちます。

C# の基本構文

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

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

例 -

以下はサンプルです Selenium テキスト「Guruシステムコンソールに「99」と表示されます。

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 クラス。エントリポイントは次のように綴られていることに注意してください。 Main 大文字のMは実際のC#で、小文字は main 上記のサンプルでは、​​エントリポイントとして認識されません。

構文が明確になったので、次の作業は、それらのテストをコンパイルして実行するためのツールをインストールすることです。

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のダウンロードページ(コミュニティ版の無料ダウンロードボタン付き)

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

Visual Studio インストーラーが管理者権限を要求しています

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

Visual Studioインストーラーのようこそポップアップが表示され、「続行」ボタンが表示されます。

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

Visual Studioインストーラーがコンポーネントファイルをダウンロードしています

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

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

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

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

ユニバーサルソフトウェアを使用したVisual Studioワークロード画面 Windows プラットフォームおよび.NETデスクトップ開発に合格

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

選択した各コンポーネントのVisual Studioインストーラーの進行状況バー

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

Visual Studioインストーラーがマシンの再起動を促している

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

Visual Studio サインインのポップアップに「今はしない、後で」リンクが表示されます

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

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

Visual Studio の初回起動画面でカラーテーマを選択する

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

インストール完了後のVisual Studio入門画面

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

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

Visual Studioのファイルメニューで「新規」と「プロジェクト」が選択されている

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

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

Visual C# コンソール アプリの新規プロジェクトダイアログとプロジェクト名 Guru99

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

新しく作成されたVisual Studioエディターを表示 Guru99コンソールプロジェクト

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

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

ツールメニューのNへのパスuGet パッケージマネージャーとManage NuGet ソリューションのパッケージ

ステップ2) 次の画面で

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

NuGet パッケージマネージャー Selenium 検索結果とプロジェクトのチェックボックスにチェックが入っています

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

NuGet 確認ポップアップの前に Selenium パッケージがインストールされました

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

NuGet 出力確認 Selenium WebDriverのインストールに成功しました

Selenium ブラウザを開くことはできるようになったが、テストが合格したかどうかを報告することはまだできない。それは単体テストフレームワークの役割だ。

NUnit フレームワーク: 概要

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

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

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

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

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

ツールメニューがNで再開されましたuGet NUnitインストール用のパッケージマネージャー

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

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

NuGet パッケージマネージャーでNUnitの検索結果を選択してインストールする

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

NuGet NUnitフレームワークのインストール前に確認ポップアップが表示されます

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

NuGet NUnitフレームワークのインストールが完了したことを確認するメッセージ

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

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

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

現在のパッケージ: 現代のプロジェクトでは NUnit3テストアダプター ととも​​に Microsoft.NET.Test.Sdk高齢者 NUnitTestAdapter パッケージはもはやメンテナンスされていません。.NET (Core) では、プロジェクト全体をスキャフォールディングできます。 dotnet new nunitこれにより、3つのパッケージすべてが自動的に追加されます。

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

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

NuGet パッケージマネージャーがプロジェクトを選択してNUnitTestAdapterを検索しています

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

NuGet NUnitテストアダプタのインストールが完了したことを確認するメッセージ

両方のファイルがインストールされたので、次のステップはそれらを単一のテストクラスに結合することです。

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

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

NUnit フレームワークは次のものと統合できます Selenium NUnitテストクラスを作成し、NUnitフレームワークを使用してテストクラスを実行することによって。 Java このパターンの同等品は、 JUnit フレームワークチュートリアルまた、Visual Studio 内の NUnit の .NET 版についても説明します。 TestNG の Selenium.

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

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

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

ソリューションエクスプローラーのコンテキストメニューで「追加」と「クラス」が選択されている。

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

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

新しいNUnitテストクラスに名前を付けるために使用される「新しい項目の追加」ダイアログ

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

Visual Studioエディターで作成された空のC#クラスファイル

ステップ4) 作成したクラスに以下のコードを追加してください。なお、Chromeドライバの初期化時に「chromedriver.exe」ファイルの場所を指定する必要があることにご注意ください。 Selenium 4.6以降のバージョンを出荷 Selenium マネージャー一致するドライバーを自動的に解決するので new ChromeDriver() パス引数なしが現在の形式です。以下のパスはスクリーンショットと一致するため、そのまま残されています。

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) 「ビルド」→「ソリューションのビルド」をクリックします。

Visual Studioで「ソリューションのビルド」を選択した状態でビルドメニューを表示する

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

ビルドエラー:エントリポイントに適した静的メインメソッドがありません

この問題を解決するには、「プロジェクト」>「プロパティ」に進み、「出力タイプ」を「クラスライブラリ」に変更してください。デフォルトは「コンソールアプリケーション」です。

出力タイプがクラスライブラリに切り替えられたプロジェクトプロパティ

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

テストメニューパス Windows およびテストエクスプローラー

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

テストエクスプローラーで利用可能なテストを一覧表示し、「選択したテストを実行」を選択します。

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

テストエクスプローラーに、合格とマークされたNUnitテスト結果が表示されている。

試験に合格すれば、システムが正常に機能していることが証明されます。以下は、実際に試験問題を作成する際に使用する語彙です。

Selenium C# の WebDriver コマンド

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

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

今これで Selenium C# チュートリアルでは、 Selenium WebDriverコマンドを1つずつ実行します。 Java 対応するものは、この中で実証されています 最初のWebDriverスクリプト ウォークスルー。

以下のコマンドは現在も有効です IWebDriver 表面 Selenium 4. 構文は変更されずに引き継がれます。

ブラウザコマンド:

以下は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()

ブラウザのコマンドはウィンドウに対して作用し、次のグループはウィンドウ内のコンテンツに対して作用します。

WebElementコマンド

WebElementは、Webページ上のあらゆる要素を表します。これらはHTMLタグで表現されます。ボタン、テキストボックス、リンク、画像、テーブル、フレームはすべてWebElementです。 Operaこれらの要素に対するアクションは、 IWebElement インターフェース。WebElement とやり取りするには、まず 要素を見つける ページ上で、それに対して操作を実行します。利用可能な戦略については、以下で説明します。 ロケーター Seleniumブラウザ開発者ツール、または以下のスクリーンショットより前の古いFirebugおよびFirepathアドオンを使用して、 XPath WebElement の。

以下は、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) になります。

上記のサンプルに関する注記: 表は元の構文を再現しています。 Selenium .NET ではメンバーはパスカルケースです — element.Submit() (NAIST) と element.GetCssValue("color") - と GetCssValue CSSプロパティ名を引数として受け取ります。

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

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");

以下の 4 つのスクリプトは、上記のコマンドを Guru99個のデモサイト。それぞれが、実行可能な完全なNUnitテストクラスです。

Code サンプル

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

テストシナリオ:

  1. デモに移動 Guru99ページ目 – 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. に移動します Guru99 デモページ – 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. に移動します Guru99 デモページ – 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. に移動します Guru99 デモページ – 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.WebDriver 4.xとNUnit 3.14またはNUnit 4、さらにNUnit3TestAdapterと Microsoft.NET.Test.Sdk。NUnit 4 は .NET Framework 4.6.2 または .NET 6 以降を対象としているため、上記のパッケージからアップグレードする前にプロジェクトのターゲットを確認してください。

いいえ。 Selenium 4.6導入 Selenium マネージャーは、実行時にブラウザドライバをダウンロードして照合します。ChromeDriver コンストラクタにドライバフォルダを渡す方法は引き続き有効ですが、特定のドライバビルドを固定する必要がある場合にのみ必要です。

暗黙的な待機では、IWebDriver インスタンスの存続期間中、すべての要素検索に単一のタイムアウトが適用されます。明示的な待機では、クリック可能や表示可能などの単一の要素と条件を対象とするため、より早くエラーが発生し、意図をより正確に表現できます。

はい。アセンブリにParallelizable属性を付けると、NUnitはフィクスチャを並行して実行します。各テストは独自のIWebDriverインスタンスを所有する必要があるため、静的フィールドを共有するのではなく、SetUpでドライバを作成してください。そうしないと、同じブラウザ上で並列テストが競合します。

NUnitとMSTestはどちらも属性を使用し、TestFixtureまたはTestClassでテストをグループ化します。xUnitはクラス属性を必要とせず、並列処理を中心に設計されています。3つすべてがTest Explorerで実行されます。NUnitは依然として最も一般的な選択肢です。 Selenium C#で作業します。

AIツールは、ページのスナップショットからロケーターを提案し、UI変更後に壊れたセレクタを修復し、記述されたテストケースをNUnitメソッドのドラフトに変換します。提案された内容はすべてドラフトとして扱い、コミットする前にアサーションを確認してください。

はい。シナリオを説明するコメントを入力すると、Copilot は SetUp、Test、TearDown メンバーを作成し、周囲のコードから FindElement 呼び出しを提案します。生成されたセレクタは検査されるのではなく推論されるため、実際のページでロケーターを確認してください。

Selenium Playwrightは、最も幅広いグリッド、クラウド、言語サポートを備え、既存のテスト環境も非常に大規模であるため、そのスキルは高い雇用価値を維持します。Playwrightは、より高速な実行と組み込みの待機機能を提供します。多くの.NETチームは両方を使用し、同じNUnitランナーとレポートを共有しています。