30のSeleniumインタビューの質問と回答を読む必要があります:Ultimate Guide 2022

公開: 2021-01-04

重要な面接に参加していて、 Seleniumの面接に関するすべての質問に疑問を持っていますか?

この最も読まれているSeleniumインタビューの質問と回答のガイドを作成して、質問の深さを理解し、自信を持ってそれに直面できるようにします。

最近、Webアプリが増えています。 Webアプリの必要性が高まるにつれ、これらのWebアプリをテストするための必然的な要件もあります。 そこでSeleniumが登場します。 Seleniumは、Webアプリが正しく機能していることを確認する、一般的に使用される自動テストツールの1つです。 テストを手動で行うと、数時間の工数がかかり、コストも高くなります。

さらに、それらは手動であるため、エラーが発生しやすくなります。 手動テストは長期的には役に立たないため、Seleniumのような自動テストが業界で需要を集めています。 自動テストでのキャリアを追求していて、Seleniumで今後のインタビューがある場合、このブログはあなたを対象としています。

このブログでは、ここで最も一般的なSeleniumインタビューの質問について説明します。 これらは両方のためのものです–初心者経験者のためのSeleniumインタビューの質問。

Seleniumインタビューの質問と回答2022

Q.1)他の自動テストツールよりもSeleniumを選ぶ理由は何ですか?

Seleniumはオープンソースです。 市場に出回っている他の自動化ツールと比較して、適応は非常に簡単です。 このため、多くの企業が他の従来の方法よりもSeleniumの自動テストを採用しています。

Q.2)TestCompleteやQTPなどのツールに対するSeleniumの利点をいくつか挙げてください。 また、デメリットは何ですか?

Seleniumは、TestCompleteやQTPとは異なり、ライセンスを必要とせず、ポケットに入れやすいです。 オンラインコミュニティは大規模なサポートを提供しています。 TestCompleteやQTPと比較すると、リリースサイクルは短く、フィードバックは迅速です。 さらに、SeleniumはMac、Linux、およびWindowsでも動作します。

それどころか、Seleniumは開発者に高いコーディングスキルを要求します。 QTPとTestCompleteは、それぞれ低レベルから中レベルのコーディングスキルを必要とします。

Q.3)さまざまなSeleniumバージョンのアップグレードでどのような変更が発生しましたか?

Seleniumの最初のバージョンであるSeleniumv1では、Selenium IDE、RC、およびGridの3つのツールスイートのみで構成されていました。 Webdriverがありませんでした。 Webdriverが導入されたのは、Seleniumの2番目のバージョンであるSeleniumv2だけでした。 これが行われると、SeleniumRCは使用されなくなりました。

それらは市場で見つけることができますが、サポートは利用できません。 Seleniumの次のバージョンはSeleniumv3です。 Webdriver、IDE、およびグリッドで構成されています。 現在使用中です。 新しいバージョンのSeleniumv4も利用できるようになりました。

Selenium IDEは、主に記録と再生を目的としています。 Webdriverは、プログラミングインターフェイスを使用して動的Webアプリケーションをテストするためのものです。 グリッドは、リモートホストマシンでテストを使用するために使用されます。

テストの記録と再生にはIDEを使用する必要があります。 WebDriverは、プログラミングインターフェイスを使用してアクティブなWebアプリケーションをテストするために使用され、Gridは、分離されたホストマシンにテストを展開するために使用されます。

Q.4)Selenium WebDriverのさまざまな例外は何ですか?

他のプログラミング言語と同じように、Seleniumでも例外を見つけることができます。 SeleniumWebDriverには次の例外があります。

TimeoutException:コマンドが指定された時間内にアクションを実行しない場合、この例外が発生します。

NoSuchElementException:Webページで指定された属性を持つ要素が見つからない場合、この例外が発生します。

ElementNotVisibleException:要素がドキュメントオブジェクトモデルで使用可能であるが、Webページには表示されない場合に、この例外が発生します。

StaleElementException:要素がドキュメントオブジェクトモデルにアタッチされていないか、削除されている場合に、この例外が発生します。

Q.5)Selenium例外テストについて説明してください

テストクラス内でスローされると予想される例外は、例外テストです。 例外をスローすることを意図したテストケースを作成する場合は、@ testアノテーションを使用し、どの例外がスローされるかをパラメーターで指定する必要があります。 例えば、

@Test(expectedException = NoSuchElementException.class)

Q.6)プロジェクトでExcelシートは必要ですか? はい、どうですか?

Excelシートは、テスト中のデータソースとして使用されます。 さらに、データ駆動型テストの実行中にデータセットも保存します。 Excelシートをデータソースとして使用すると、次のものを保存できます。

アプリケーションURL:開発者は、テストが実行される環境URLに言及できます。 たとえば、テスト環境、開発環境、QA環境、本番環境、ステージング環境などです。

ユーザー名とパスワード情報:Excelシートは、さまざまな環境のパスワードのユーザー名などのアクセス資格情報を安全に保つことができます。 開発者は、セキュリティ上の理由から、これらの詳細を暗号化して保存できます。

テストケース:開発者は、一方の列にテストケース名を書き込み、もう一方の列に実行するかどうかを示すテーブルを作成できます。

DataDriven TestにExcelシートを使用する場合は、テスト中に実行されるさまざまな複製の情報を簡単に保存できます。 たとえば、Webページでテストするためにテキストボックスに書き込む必要のあるすべてのデータをExcelシートに保存できます。

Q.7)POMとは何ですか? その利点を挙げてください。

POMはページオブジェクトモデルの略です。 これは、WebUI要素のオブジェクトリポジトリを作成するためのデザインパターンです。 アプリケーション内のすべてのWebページには、対応する独自のページクラスが必要です。このクラスは、そのページ内のWebElementを検索し、それらに対して操作を実行します。

Pageオブジェクトモデルを使用する利点は次のとおりです。

  • 開発者が操作とUIフローを検証から分離できるようにすることで、コードを読みやすくします。
  • テストケースから独立しているため、複数のテストで同じオブジェクトリポジトリを使用できます。
  • コードは再利用可能になります。

Q.8)ページファクトリーとは何ですか?

ページファクトリは、メモリを効率的に使用してページオブジェクトモデルを実行するための拡張された方法を提供し、実行はオブジェクト指向設計を使用して行われます。

POMの実装
ページファクトリー付きページファクトリーなし
By()を使用します@FindBy()を使用します
インポートは必要ありませんインポートページファクトリ
キャッシュストレージなしキャッシュルックアップが高速

ページファクトリは、ページオブジェクトの要素を初期化するか、ページオブジェクト自体をインスタンス化します。 要素の注釈も作成できます。 実際、記述プロパティは、あるオブジェクトを別のオブジェクトと区別するのに十分な表現力を持たない可能性があるため、より良い方法です。

POMがページファクトリなしで使用される場合、「FindElements」を使用する代わりに、@ FindByを使用してWebElementを検索し、initElementsを使用してページファクトリクラスからWeb要素を初期化します。

@FindByは、tagName、name、partialLinkText、linkText、id、className、css、xpathなどの属性を受け入れることができます。

Q.9)WebDriverでどのように同期を実現しますか? または、SeleniumWebDriverのさまざまなタイプの待機ステートメントについて教えてください。

Selenium Webドライバーには、ImplicitWaitとExplicitWaitの2つの待機ステートメントがあります。

暗黙の待機は、DOMをポーリングすることによってWebDriverに少し待機するように命令します。 暗黙の待機が宣言されると、Webドライバーインスタンスの存続期間中存在します。 プリセット値はゼロです。 ゼロより大きく設定すると、動作はドライバーの実装に基づいて定期的にDOMをポーリングします。

明示的な待機は、次のような条件が達成されるまで少し待機するように実行に命令します。

  • elementToBeClickable
  • presentOfElementLocated
  • elementToBeSelected

読む:春のインタビューの質問と回答

10)JavaScriptExecutorの用途は何ですか?

JavaScriptExecutorを使用して、SeleniumWebsriverからJavaScriptを実行できます。 これは、このメカニズムを提供するインターフェースです。 現在選択されているフレームまたはウィンドウの状態でJavaScriptを実行するための「executescript」や「executeAsyncScript」などのメソッドを提供します。 その例は次のとおりです。

JavascriptExecutor js =(JavascriptExecutor)ドライバー;

js.executeScript(Script、Arguments);

Q.11)SeleniumでJavaScriptを使用してページを下にスクロールできる関数はどれですか?

関数window.scrollBy()は、SeleniumでJavaScriptを使用してページを下にスクロールするのに役立ちます。 例えば:

((JavascriptExecutor)driver).executeScript(“ window.scrollBy(0,500”);

Q.12)Seleniumを使用してマウスとキーボードのアクションをどのように処理しますか?

特別なマウスとキーボードのアクションは、Advanced UserInteractionsAPIを使用して処理されます。 これは、これらのイベントを実行するために必要なアクションとアクションクラスで構成されています。 最もよく使用されるマウスとキーボードのイベントは、Actionクラスによって提供されます。

dragAndDrop():このイベントは、ソース要素の位置でクリックアンドホールドを実行し、移動します。

source、target():ターゲット要素の位置に移動し、マウスを離します。

clickAndHold():マウスの現在の位置をクリックします。

Q.13)さまざまな種類のSeleniumフレームワークとは何ですか?

Seleniumフレームワークのさまざまなタイプは次のとおりです。

  • キーワード駆動型フレームワーク:このフレームワークでは、操作と手順はExcelなどの別のファイルに書き込まれます。
  • データ駆動型フレームワーク:このフレームワークでは、完全なテストデータは、XML、Excel、CSV、またはその他のデータベーステーブルなどの外部ソースファイルから取得されます。
  • ハイブリッドフレームワーク:このフレームワークは、キーワード駆動型フレームワークとデータ駆動型フレームワークの両方をブレンドしたものです。

Q.14)さまざまなSeleniumフレームワークのデータソースとして機能するファイルをいくつか挙げてください。

XML、Excel、CSV、さらにはテキストファイルにすることができます。

Q.15)セレネーゼとは何ですか?

Seleneseは、WebアプリケーションをテストするためのSeleniumコマンドのグループです。 開発者は、アサーション、アクション、およびアクセサーを使用できます。 アサーションはチェックポイントとして使用されます。 アクションは操作を実行するためのものであり、アクセサーは変数の値を格納するために使用されます。

Q.16)ページファクトリとページオブジェクトモデル(POM)の主な違いは何ですか?

一般的なセレンインタビューの質問。 ページファクトリは、インスタンスの作成時にページオブジェクト内のWeb要素を初期化するメソッドです。 一方、ページオブジェクトモデルは、Webページを記述し、その機能を保持するクラスです。

Q.17)Seleniumはウィンドウポップアップの処理をサポートしていますか?

いいえ。Seleniumはポップアップの処理をサポートしていません。 ポップアップウィンドウであるアラートは、画面に警告メッセージを表示します。 これは、次のようないくつかの方法を使用して実現できます。

Void dismiss():アラートボックスでキャンセルボタンをクリックすると、このメソッドが呼び出されます。

Void accept():アラートの[OK]ボタンをクリックすると、このメソッドが呼び出されます。

String getText():アラートメッセージをキャプチャする場合は、このメソッドを呼び出す必要があります。

Void sendKeys(String stringToSed):アラートボックスに情報を送信する場合は、このメソッドを呼び出す必要があります。

読む: Reactインタビューの質問と回答

Q.18)ロボットクラスについて説明してください

Robotクラスは、キーボードとマウスのデバイスを制御します。

方法は次のとおりです。

  • KeyPress():キーを押したいイベントで呼び出されます。
  • KeyRelease():押されたキーを解放するためにイベントで呼び出されます。
  • MouseMove():マウスポインタをX座標とY座標に移動する必要がある場合に呼び出されます。
  • MousePress():マウスの左ボタンを押したときにイベントで呼び出されます。
  • MouseMove():マウスの押されたボタンを離した場合に呼び出されます。

Q.19)Seleniumで多くのウィンドウを処理するにはどうすればよいですか?

ウィンドウハンドルは、すべてのウィンドウのアドレスを持つ特別な識別子です。 これは、文字列の値を返すウィンドウへのポインタとして機能します。

  • get.windowhandle():現在のウィンドウハンドルを取得します。
  • get.windowhandles():開いているすべてのウィンドウのハンドルを取得します。
  • スイッチ:ウィンドウを切り替えるのに役立ちます。
  • set:文字列の形式でウィンドウハンドルを設定します。
  • アクション:ウィンドウで特定のアクションを実行するのに役立ちます。

Q.20)リスナーとは何ですか?

システムの動作を変更するインターフェースは、Seleniumではリスナーと呼ばれます。 ログとレポートのカスタマイズが可能になります。 TestNGリスナーとWebdriverリスナーの2種類があります。

Q.21)AssertおよびVerifyコマンドについて説明してください

アサーション:アサーションは、実際の結果と期待される結果を区別するために使用されます。

検証:検証条件がtrueかfalseかに関係なく、テストの実行は一時停止されません。

Q.22)Webページをどのように行き来しますか?

これは、最も一般的なセレンインタビューの質問の1つです。

以下の方法を使用して、前後に移動できます。

driver.navigate.forward

driver.manage.navigate

driver.manage.back

driver.navigate.to( "url")

Q.23)SeleniumWebDriverでALT/ SHIFT / CONTROLキーを送信するにはどうすればよいですか?

通常、ALT、Shift、Controlなどのキーを使用して、それらを他のキーと組み合わせて機能をアクティブにします。 一人でクリックするだけではいけません。 次のキーが

押された:keyUp(modifier_key)およびkeyDown(modifier_key)

パラメーター:Modifier_key(keys.ALTまたはKeys.SHIFTまたはKeys.CONTROL)

目的:目的は、修飾キーを離さずに修飾キーを押すことです。 次の相互作用は、それが押され続けていると想定する場合があります。

パラメーター:Modifier_key(keys.ALTまたはKeys.SHIFTまたはKeys.CONTROL)

目的:目的は、キーリリースを実行することです。

したがって、これら2つの方法を組み合わせることで、特定のキーの特別な機能をキャプチャできます。

Q.24)Selenium WebDriverでスクリーンショットを撮るにはどうすればよいですか?

TakeScreenshot関数は、SeleniumWebdriverでスクリーンショットを撮るのに役立ちます。 さらに、getScreenshotAs()メソッドを使用して、スクリーンショットの撮影を保存できます。

ファイルscrFile=((TakeScreenshot)driver).getScreenshotAs(outputType.FILE);

Q. 25)Seleniumを使用してブラウザウィンドウのサイズを設定できますか? はいの場合、どのように?

はい。 ブラウザウィンドウのサイズを最大化したい場合は、コードを使用する必要があります

driver.manage()。window()。maximize();

現在のウィンドウのサイズを特定のサイズに変更する場合は、setSize()メソッドを使用する必要があります。 例えば:

System.out.println(driver.manage()。window()。getSize());

ディメンションd=new Dimension(420,600);

driver.manage()。window()。setSize(d);

ウィンドウを特定のサイズに設定する場合は、window.resizeTo()メソッドを使用する必要があります。

例えば:

((JavascriptExecutor)driver).executeScript(“ window.resizeTo(1024、768);”);

Q.26)ドロップダウンから値を選択するにはどうすればよいですか? ドロップダウンを処理する方法は?

ドロップダウンと値の選択については、少し注意が必要で技術的でもあるため、質問される可能性があります。

知っておく必要のある最も重要な詳細は、Seleniumのドロップダウンを操作するには、htmlタグ'select'を使用することが重要であるということです。 selectタグを使用せずにドロップダウンを処理することはできません。 以下のコードをご覧ください。

<select id =” mySelect”>

<option value =” option1″>ケーキ</ option>

<option value =” option2″>チョコレート</ option>

<option value =” option3″>キャンディー</ option>

</ select>

上記のコードでは、HTMLの「select」タグを使用してドロップダウン要素を定義しています。 ここでのselectタグのIDはmyselectです。 ドロップダウンには、ケーキ、チョコレート、キャンディーの3つのオプションがあります。 これらの選択肢にはそれぞれ、値属性が付加されていることがわかります。 たとえば、Cakeの場合、値はOption1、Chocolatesの場合はOption2、Candiesの場合はOption3です。

値を選択するには、次のことを行う必要があります。

findelement()を使用して、「select」html要素を識別します。

例:

WebElement mySelectElement = driver.findElement(By.id( "mySelect"));

選択ドロップダウン=newSelect(mySelectElement);

そのドロップダウン要素からオプションを選択します。

そのドロップダウンからオプションを選択するには、次の3つの方法があります。

dropdown.selectByVisibleText( "チョコレート"); →表示されるテキストによるオプションの選択。

dropdown.selectByIndex(“ 1”); →そのオプションのインデックス番号を使用してオプションを選択します。

dropdown.selectByValue( "option2"); →そのオプションの値を使用してオプションを選択します。

すべての場合において、オプション「チョコレート」がドロップダウンから選択されていることに注意してください。 ポイント1と3は明白であり、ポイント2です。 インデックス付けはゼロから始まるため、「1」と言います。

読む:トップNagiosインタビューの質問と回答

Q.27)リンクをクリックすると開く新しいタブにどのようにホップしますか?

Webページ上のリンクをクリックしたら、switchTo()コマンドを使用してWebドライバーのフォーカスを変更する必要があります。 例:driver.switchTo()。window();

ここで、「windowName」はウィンドウの名前であり、フォーカスを切り替える必要があります。

ウィンドウの名前がわからない場合は、driver.getWindowHandle()コマンドを使用して、WebDriverによって開始されたすべてのウィンドウの名前を取得できます。 Webdriverが開始しなかったウィンドウの名前が表示されることはありません。

名前を取得したら、そのウィンドウに到達するためにループを実行する必要があります。 次に例を示します。

文字列ハンドル=driver.getWindowHandle();

for(文字列ハンドル:driver.getWindowHandles())

{{

driver.switchTo()。window(handle);

}

Q.28)Selenium WebDriverにファイルをアップロードするにはどうすればよいですか?

コマンドelement.send_keys(file path)は、SeleniumWebdriverにファイルをアップロードするために使用されます。 ただし、その前に、次のhtmlタグを使用する必要があります。'input'ここで、属性タイプは'file'である必要があります。 これをよりよく理解するための例を次に示します。

<input type =” file” name =” my_uploaded_file” size =” 50” class =”pole_plik”>

element = driver.find_element_by_id(” my_uploaded_file”)

element.send_keys(“ C:myfile.txt”)

Q.29)testng.xmlの重要性は何ですか?

Seleniumの面接をしている場合は、テストの重要性を確かに知っています。 Seleniumは、レポートの生成とテストケース管理をサポートしていません。 したがって、SeleniumではTestNGフレームワークを使用します。 Junitに比べてはるかに高度であり、アノテーションの実装が容易であるため、SeleniumWebdriverでTestNGフレームワークを選択できます。

testing.xmlファイルからコマンドを取得することにより、TestNGでテストスイートとテストクラスのグループ化を定義できます。 スイートは実行機能であるため、テストソースコード内のテストスイートではなく、XMLファイルで表されます。 テストスイートは、テストケースのグループまたはコレクションです。

testng.xmlファイルには、実行フローの一部として実行するすべてのメソッドとクラスの名前が含まれている必要があります。

testng.xmlファイルを使用する利点のいくつかは次のとおりです。

  • 複数のクラスから複数のテストケースを実行できます
  • これにより、1つのテストが複数のグループに属することができるグループでテストケースを実行できます。
  • 並列実行が可能です。

Q. 30)TestNGのデータプロバイダーについて説明してください。 複数の関数やクラスに対して単一のデータプロバイダーメソッドを呼び出すことは可能ですか?

高度なセレンインタビューの質問の1つ。 DataProviderはTestNGの機能であり、開発者がDataDrivenテストを作成できるようにします。 DataDrivenテストをサポートします。つまり、同じテストメソッドを異なるデータセットで複数回実行できます。 DataProviderは、テストメソッドにパラメーターを渡すための単なるメソッドです。

@DataProviderは、テストメソッドにデータを提供するためのメソッドです。 注釈付きメソッドは、各Object[]をテストメソッドのパラメータリストに割り当てることができるObject[]を返す必要があります。

はい。 複数の関数およびクラスに対して単一のデータプロバイダーメソッドを呼び出すことができます。 別のクラスでDataProviderを宣言し、それを複数のクラスで再度使用することにより、同じDataProviderを複数の関数およびクラスで使用できます。

Q. 31)TestNGの機能は何ですか?

  • 注釈の前後
  • XMLベースのテスト構成
  • マルチスレッド実行
  • オープンAPI
  • より良い報告
  • データ駆動型テスト
  • 依存グループ。
  • 依存メソッド

世界のトップ大学からソフトウェア開発コース取得します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

Seleniumの面接の質問と回答のガイドの最後に来て、これがあなたの仕事を得るのに役立つことを願っています。 経験豊富なSeleniumの面接の質問はより技術的ですが、仕事をめぐる激しい競争があるため、面接の準備が整っていることは常に素晴らしいことです。

Selenium、DevOps、およびフルスタック開発に関するすべての学習に興味がある場合は、フルスタックソフトウェア開発プログラムのIIIT-BおよびupGradのエグゼクティブPGプログラムを確認してください。

未来のキャリアに備える

ソフトウェアエンジニアリングの修士号を今すぐ申し込む