top 25 selenium webdriver commands that you should know
トップSeleniumWebDriverコマンド–自動化テスターのための驚異的なガイド
Selenium WebDriverは、最も人気のあるオープンソースのWebサイト自動化ツールの1つです。私の仲間の自動化テスターのほとんどは、WebDriverとJavaの組み合わせを好みます。
このチュートリアルでは、25の日常的に使用されるSelenium WebDriverコマンドと、それらに関連する構文およびわかりやすい簡単な例について説明します。
学習内容:
- WebDriverのコマンドの種類
- 詳細を含む上位7つのSeleniumコマンド
- 25のより人気のあるWebDriverコマンドと例のリスト
- #1)get()
- #2)getCurrentUrl()
- #3)findElement(By、by)およびclick()
- #4)isEnabled()
- #5)sendKeys()を使用したfindElement(By、by)
- #6)findElement(By、by)with getText()
- #7)Submit()
- #8)findElements(By、by)
- #9)findElements(By、by)with size()
- #10)pageLoadTimeout(time、unit)
- #11)暗黙的に待つ()
- #12)untill()およびvisibilityOfElementLocated()
- #13)untill()およびalertIsPresent()
- #14)getTitle()
- #15)選択
- #16)navigate()
- #17)getScreenshotAs()
- #18)moveToElement()
- #19)dragAndDrop()
- #20)switchTo()とaccept()、dismiss()とsendKeys()
- #21)getWindowHandle()およびgetWindowHandles()
- #22)getConnection()
- #23)その後
- #24)assertEquals()、assertNotEquals()、assertTrue()およびassertFalse()
- #25)close()およびquit()
- 結論
- 推奨読書
WebDriverのコマンドの種類
の中に 最後のSeleniumチュートリアル 、私たちは議論しました さまざまな種類のアラート Webベースのアプリケーションとその効果的な処理方法のテスト中に発生しました。 「Webベースのアラート」と「ウィンドウベースのアラート」の両方のタイプのアラートについて詳しく説明しました。また、Windowsベースのポップアップを処理するための「RobotClass」という名前のさらに別のJavaベースのユーティリティについても知ってもらいました。
前進する このSeleniumWebDriverチュートリアルシリーズ 、私たちは押しているでしょう 一般的かつ日常的に使用されるさまざまなSeleniumWebDriverコマンド 。状況が発生したときにいつでもこれらのコマンドを効果的に使用できるように、これらのSeleniumコマンドのそれぞれについて正確かつ簡単に説明します。
すべての自動化Java作業ファイルは、以下の構文で説明されているように、使用するWebブラウザーの参照を作成することから始まります。
Webdriverインターフェースから利用できるいくつかの方法があります。これらのメソッドは、インスタンス変数を使用してアクセスされます 運転者 シンプルなフォーマットで driver.methodName(); 。これらすべての自動化プロジェクトには、これらのメソッドの呼び出しと、実際に返されるものの比較と評価が含まれます。
簡単に言うと、一般的にWebdriverコマンドは次のように分類できます。
- ブラウザコマンド、
- コマンドを取得し、
- ナビゲーションコマンド、
- Webelementコマンド、
- アクションコマンドと
- 結果コマンド。
手動テストのコンテキストから、PASSまたはFAILのいずれかのテストの結果は、通常、期待される結果と実際の結果を比較するResultコマンドから決定され、残りはテストケースのステップです。
詳細を含む上位7つのSeleniumコマンド
大まかなアイデアを出すために、次のSeleniumWebDriverコマンドとそれらのさまざまなバージョンについて説明します。
- 取得する() メソッド
- リンクの検索 linkText() そして partialLinkText()
- ドロップダウンで複数のアイテムを選択する
- フォームの送信
- iframeの処理
- 閉じる() そして 終了する() メソッド
- 例外処理
#1)get()メソッド
WebDriverコマンド | 使用法 |
---|---|
getAttribute() | •コマンドは、指定された属性の値を取得するために使用されます •コマンドには、値を知りたい属性を参照する単一の文字列パラメーターが必要であり、結果として文字列値を返します。 driver.findElement(By.id( 'findID'))。 getAttribute( 'value'); |
取得する() | •コマンドは新しいブラウザを起動して開きます ブラウザインスタンスで指定されたURL •コマンドは、通常はテスト対象のアプリケーションのURLである単一の文字列型パラメーターを取ります •SeleniumIDEユーザーにとって、コマンドはopenコマンドに非常によく似ている場合があります driver.get( 'https://google.com'); |
getClass() | このコマンドは、Classオブジェクトを取得するために使用されます このオブジェクトのランタイムクラスを表します driver.getClass(); |
getCurrentUrl() | •このコマンドは、ユーザーが現在アクセスしているWebページのURLを取得するために使用されます •コマンドはパラメータを必要とせず、文字列値を返します driver.getCurrentUrl(); |
getPageSource() | •このコマンドは、ページソースを取得するために使用されます ユーザーが現在アクセスしているウェブページの •コマンドはパラメータを必要とせず、文字列値を返します •このコマンドは、contains()などのさまざまな文字列操作で使用して、 指定された文字列値の存在 boolean result = driver.getPageSource()。contains( 'String to find'); |
getTitle() | •このコマンドは、ユーザーが現在作業しているWebページのタイトルを取得するために使用されます。 Webページにタイトルがない場合は、null文字列が返されます •コマンドはパラメータを必要とせず、トリミングされた文字列値を返します 文字列タイトル= driver.getTitle(); |
getText() | •コマンドは、内部テキストを取得するために使用されます 指定されたWeb要素の •コマンドはパラメータを必要とせず、文字列値を返します •これは、表示されたメッセージ、ラベル、エラーなどを検証するために広く使用されているコマンドの1つでもあります。 Webページで。 文字列テキスト= driver.findElement(By.id( 'Text'))。getText(); |
getWindowHandle() | •このコマンドは、処理するウィンドウが複数ある場合の状況に対処するために使用されます。 •このコマンドは、新しく開いたウィンドウに切り替えて、新しいウィンドウでアクションを実行するのに役立ちます。 ユーザーは、必要に応じて前のウィンドウに戻すこともできます。 プライベート文字列winHandleBefore; winHandleBefore = driver.getWindowHandle(); driver.switchTo()。window(winHandleBefore); |
getWindowHandles() | •コマンドは「getWindowHandle()」のコマンドと似ていますが、複数のウィンドウを処理するのに役立つという微妙な違いがあります。つまり、3つ以上のウィンドウを処理する必要がある場合です。 |
「getWindowHandles()」のコードスニペットを以下に示します。
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
#2)linkText()とpartialLinkText()によるリンクの検索
を使用して「google.com」と「abodeqa.com」にアクセスしましょう linkText() そして partialLinText() WebDriverのメソッド。
上記のリンクには、次のコマンドを使用してアクセスできます。
運転者 .findElement(By.linkText( 「グーグル」 ))。クリック();
運転者 .findElement(By.linkText( AbodeQA ))。クリック();
このコマンドは、リンクテキストを使用して要素を検索し、その要素をクリックすると、ユーザーは対応するページにリダイレクトされます。
上記のリンクには、次のコマンドを使用してアクセスすることもできます。
運転者 .findElement(By.partialLinkText( 「グー」 ))。クリック();
運転者 .findElement(By.partialLinkText( 「上」 ))。クリック();
上記の2つのコマンドは、括弧内に指定されたリンクの部分文字列に基づいて要素を検索します。したがって、partialLinkText()は、指定された部分文字列を持つWeb要素を検索し、それをクリックします。
#3)ドロップダウンで複数のアイテムを選択する
ドロップダウンには主に2種類あります。
- 単一選択ドロップダウン :一度に1つの値のみを選択できるドロップダウン。
- 複数選択ドロップダウン :一度に複数の値を選択できるドロップダウン。
以下のHTMLコードを検討してください 複数の値を同時に選択できるドロップダウンの場合。
Red Green Yellow Grey
以下のコードスニペットは、ドロップダウンでの複数の選択を示しています。
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
#4)フォームの送信
ほとんどまたはほとんどすべてのWebサイトには、Webアプリケーションのテスト中に入力して送信する必要のあるフォームがあります。ユーザーは、ログインフォーム、登録フォーム、ファイルアップロードフォーム、プロファイル作成フォームなど、いくつかの種類のフォームに出くわす可能性があります。
WebDriverでは、フォームを送信するために特別に作成されたメソッドを使用してユーザーを活用します。ユーザーは、送信ボタンの代わりに、クリックメソッドを使用して送信ボタンをクリックすることもできます。
上記の「新規ユーザー」フォームに対して、以下のコードスニペットを確認してください。
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
したがって、プログラムコントロールがsubmitメソッドを見つけるとすぐに、要素を見つけてトリガーします。 参加する() 見つかったWeb要素のメソッド。
#5)iframeの処理
Webアプリケーションを自動化する際に、ウィンドウ内の複数のフレームを処理する必要がある場合があります。したがって、テストスクリプトの開発者は、実際には、さまざまなフレームまたはiframeを切り替える必要があります。
iframeとしてのインラインフレームの頭字語は、ネストを有効にすることにより、現在のHTMLドキュメント内に別のドキュメントを挿入するため、または単にWebページを別のWebページに挿入するために使用されます。
Webページ内にiframeを持つ次のHTMLコードについて考えてみます。
Software Testing Help - iframe session
上記のHTMLコードは、別のiframeに埋め込まれたiframeの存在を示しています。したがって、子iframeにアクセスできるようにするには、ユーザーは最初に親iframeに移動する必要があります。必要な操作を実行した後、ユーザーはWebページの他の要素を処理するために親iframeに戻る必要がある場合があります。
ユーザーが最初に親iframeに移動せずに、子iframeに直接アクセスしようとすると不可能です。
IDでiframeを選択
運転者 .switchTo()。frame( 「」 フレームのID 「」 );
tagNameを使用してiframeを見つける
iframeの検索中に、iframeが標準のプロパティに関連付けられていない場合、ユーザーは問題に直面する可能性があります。フレームを見つけて切り替えるのは複雑なプロセスになります。状況を緩和するために、ユーザーはWebDriverで他のWeb要素を見つけるのと同じようにtagNameメソッドを使用してiframeを見つけるために活用されます。
driver.switchTo()。frame(driver.findElements(By.tagName( 'iframe')。get(0));
上記のコマンドは、指定されたtagNameを持つ最初のWeb要素を見つけて、そのiframeに切り替えます。 「get(0)は、インデックス値を持つiframeを見つけるために使用されます。」したがって、HTMLコードに沿って、上記のコード構文により、プログラムコントロールが「ParentFrame」に切り替わります。
インデックスを使用してiframeを見つける:
a)フレーム(インデックス)
driver.switchTo()。frame(0);
b)フレーム(フレーム名)
driver.switchTo()。frame( 'フレームの名前');
c)frame(WebElement要素)
親ウィンドウを選択
driver.switchTo()。defaultContent();
上記のコマンドは、ユーザーを元のウィンドウ、つまり両方のiframeから戻します。
#6)close()メソッドとquit()メソッド
WebDriverには、Webブラウザインスタンスを閉じるための2種類のコマンドがあります。
a)close() :WebDriverのclose()メソッドは、ユーザーが現在作業しているWebブラウザーウィンドウを閉じます。または、WebDriverが現在アクセスしているウィンドウと言うこともできます。このコマンドはパラメーターを必要とせず、値も返しません。
b)quit() :close()メソッドとは異なり、quit()メソッドはプログラムが開いたすべてのウィンドウを閉じます。 close()メソッドと同じように、このコマンドはパラメーターを必要とせず、値も返しません。
以下のコードスニペットを参照してください。
運転者 。閉じる(); //現在WebDriverインスタンスによってアクセスされている単一のウィンドウのみを閉じます
運転者 。終了する(); // WebDriverインスタンスによって開かれたすべてのウィンドウを閉じます
#7)例外処理
例外は、プログラムの実行を予期せず停止させる条件または状況です。
このような状態の理由は次のとおりです。
- ユーザーによって導入されたエラー
- プログラマーによって生成されたエラー
- 物理リソースによって生成されたエラー
したがって、これらの予期しない状況に対処するために、例外処理が概念化されました。
Webアプリケーションの自動化中に実装するJavaコードに関しては、誤った条件に対する処理メカニズムを提供できるブロック内に含めることができます。
例外をキャッチする
例外をキャッチするために、以下のコードブロックを使用します
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
tryブロック/ protectedブロックで例外が発生した場合、実行制御は一致する例外タイプのcatchブロックをチェックし、プログラムの実行を中断することなく例外を渡します。
複数のキャッチブロック
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
上記のコードでは、例外タイプが一致する場合、例外は最初のcatchブロックでキャッチされる可能性があります。例外タイプが一致しない場合、すべてのキャッチブロックにアクセスするまで、例外は2番目のキャッチブロックと3番目のキャッチブロックにトラバースされます。
WebDriverの条件と例外処理
さまざまなWebDriverの条件付きコマンドを使用して、Webページ上の要素の存在を確認しようとすると、WebDriverはWeb要素がWebページに存在すると想定します。 Web要素がWebページに存在しない場合、条件付きコマンドは「NoSuchElementPresentException」をスローします。したがって、このような例外によるプログラムの実行の停止を回避するために、例外処理メカニズムを使用します。以下のコードスニペットを参照してください。
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
25のより人気のあるWebDriverコマンドと例のリスト
以下に示すのは、すべての自動化テスターが知っておく必要のある、日常的に使用される上位25のWebドライバーコマンドのリストです。
これらのコマンドを1つずつ詳しく見ていきましょう。
さらに読む=> SeleniumWebDriverチュートリアル
#1)get()
get()を使用して現在のブラウザでURLを開くコマンド。
以下のコマンドは、指定されたURL「https://www.softwaretestinghelp.com」をブラウザで開きます。
構文:
driver.get('https://www.softwaretestinghelp.com');
説明:
- URLhttps://www.softwaretestinghelp.comに移動します
#2)getCurrentUrl()
getCurrentUrl()を使用して、URLが正しいかどうかを確認するコマンド。
以下のコマンドは、現在のURLを文字列形式で取得します。
構文:
deque c ++とは
driver.getCurrentUrl();
通常、コマンドでこのメソッドを使用して、期待どおりに正しいページに移動したかどうかを確認します。そのためには、以下に示すようにアサートを使用する必要があります 例 。
構文:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
ここで、expectedUrlは、文字列形式で期待されるURLです。
説明:
- ロードされたURLが同じままであり、正しいページがロードされていることを確認してください。
#3)findElement(By、by)およびclick()
findElement(By、by)およびclick()をクリックして、Webページの任意の要素をクリックします。
findElement(By、by)メソッドは、現在のページの最初の要素を検索して検索します。これは、パラメーターとして指定された基準に一致します。このメソッドは通常、クリック、送信、入力などのユーザーアクションをシミュレートするコマンドで使用されます。
以下のコマンドは、IDが「submit1」のWebページの最初の要素を検索して見つけ、カバーされていない場合はクリックします。
構文:
driver.findElement(By.id('submit1')).click();
要素は、を使用して見つけることができます ID 、 名前 、 クラス 名前 、 タグ名 、 リンクテキスト& 部分的なリンクテキスト 、 CSSセレクター そして Xパス 。
説明:
- 必要な(送信)ボタンを探します。
- ボタンをクリックします。
以下のコマンドは、リストボックスから項目を選択します。
構文:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
説明:
- ID「name1」でリストアイテムを検索して見つけます。
- そのアイテムをクリックします。
#4)isEnabled()
isEnabled()は、SeleniumWebDriverで要素が有効か無効かを確認します。
特定の要素がWebページで有効になっているかどうかを確認するために、isEnabled()メソッドを使用します。
構文:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
説明:
- xpathに従ってWebページ内の要素を検索し、要素が有効になっているかどうかを確認します。
#5)sendKeys()を使用したfindElement(By、by)
findElement(By、by)とsendKeys()を使用して、フォームフィールドに入力します。
自動化テストで必要になることが多いさまざまなユーザー入力を入力して、フォームの検証チェックを行います。 findElement(By、by)を使用してフィールドを検索し、sendKeys()を使用して編集可能なフィールドにコンテンツを入力します。
次のコマンドは、名前ロケーターを使用してフォームフィールドを検索し、その中に「Aaron」と入力します。
構文:
driver.findElement(By.name('name')).sendkeys('Aaron');
説明:
- フォームで必須の名前フィールドを探します。
- 値「Aaron」を入力します。
#6)findElement(By、by)with getText()
findElement(By、by)とgetText()を使用して、ターゲットのWeb要素の値を格納します。
getText()は、Web要素の内部テキストを取得するメソッドです。 Get textは、HTMLタグ内のテキストです。
以下のコードは、tagNameが「select」の要素を検索し、タグ内のテキストを取得して、変数のドロップダウンに格納します。これで、String dropDownを使用して、プログラム内の以降のアクションを実行できます。
構文:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
説明:
- tagName“ dropdown1”を持つフォームで必須フィールドを探します。
- HTMLタグ内のテキストを取得します。
- 文字列オブジェクト「DropDown」にテキストを保存します。
#7)Submit()
Submit()を使用してWebフォームを送信します。
上で説明したclick()メソッドを使用して、任意のリンクまたはボタンをクリックできます。クリックする要素が送信ボタンである場合、Submit()はclick()のより良い代替手段です。送信ボタンはHTMLの「フォーム」タグ内にあり、ボタンのタイプは「送信」です(「ボタン」ではありません)。
submit()は、名前や電子メールアドレスなどの他のフィールドに追加できるボタンとメソッドを自動的に見つけることで、作業を楽にします。クリックの場合、findElement(By、by)メソッドを使用して、正しいロケーターを指定する必要があります。
ボタン以外の要素を介してアクションが実行される一部のシナリオでは、submit()は機能し、click()は機能しません。
構文:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
説明:
- 指定されたxパスで「comments」という名前の要素を検索します。
- フォームを送信します。
#8)findElements(By、by)
findElements(By、by)を使用して、Web要素のリストを取得します。
Webページのリンクや入力フィールドなどのWeb要素のリストを印刷したりアクションを実行したりする場合があります。このような場合、findElements(By、by)を使用します。
構文:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
説明:
- 指定されたxpathを持つすべてのWeb要素のリストは、Web要素リストallChoicesに格納されます。
#9)findElements(By、by)with size()
findElements(By、by)とsize()を使用して、要素が存在するかどうかを確認します。
findElements(By、by)を使用して、要素が実際にWebページに存在するかどうかを確認できます。
以下のコマンドは、特定のロケーターを持つ要素がWebページに存在することを確認する場合に使用されます。 size()!= 0の場合、要素は存在します。
構文:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
説明:
- 検索要素は、IDが「checkbox2」のxpathで指定されています。
- 要素リストのサイズに応じて、ブール値のcheckIfElementPresentがTRUEまたはFALSEに設定されます。
#10)pageLoadTimeout(time、unit)
pageLoadTimeout(time、unit)を使用して、ページをロードする時間を設定します。
サーバーの問題やネットワークの遅延が原因で、ページの読み込みに通常よりも時間がかかる場合があります。これにより、プログラムでエラーがスローされる可能性があります。これを回避するために、待機時間を設定し、pageLoadTimeout()はそのようなメソッドの1つです。これは通常、get()コマンドの後に続きます。
構文:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
説明:
- ページが読み込まれるまで500秒待ちます。
#11)暗黙的に待つ()
暗黙的にWait()を使用して、Web要素を検索および検索する前の待機時間を設定します。
Webページが読み込まれ、要素が表示される前にWebdriverが要素を見つけようとすると、どうなりますか? NoSuchElementExeptionがスローされます。これを回避するために、要素を見つける前に特定の時間暗黙的に待機するコマンドを追加できます。
構文:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
説明:
- コードの次の行を実行する前に、暗黙的に1000秒待機します。
#12)untill()およびvisibilityOfElementLocated()
WebdriverWaitのuntill()とExpectedConditionsのvisibilityOfElementLocated()は、要素がWebページに表示されるまで明示的に待機します。
要素がソフトウェアのWebページに表示されるまでに時間がかかりすぎる場合を処理するには、暗黙的な待機を適用するのが難しくなります。この場合、要素がWebページに表示されるまで待つコメントを書くことができます。このコマンドは、WebdriverWaitクラスのuntil()メソッドとExpectedConditionsクラスのvisibilityOfElementLocated()メソッドの組み合わせを使用します。
構文:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
説明:
- 最初の行は、待機する時間(10秒)を示しています。
- 2番目の条件は、待機する予定の条件を示します。これは、前述のxpathにあるID「name」の要素です。
#13)untill()およびalertIsPresent()
WebdriverWaitのuntill()およびExpectedConditionsのalertIsPresent()は、アラートが表示されるまで明示的に待機します。
一部のシナリオでは、アラートがテストを続行するのを待つ必要があります。この場合、WebdriverWaitクラスのuntil()メソッドとExpectedConditionsクラスのalertIsPresent()メソッドを使用するコマンドを使用します。
以下のコマンドを参照してください。
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
説明:
- 最初の行は、待機する時間、つまり10秒を示しています。
- 2番目の条件は、待機する予定の条件を示します。これがアラートポップアップです。
#14)getTitle()
getTitle()を使用して、SeleniumWebドライバーでページタイトルを取得します。
構文:
String title = driver.getTitle(); System.out.println(title);
これは通常、出力ログにタイトルを印刷するために使用されます。
説明:
- Webページのタイトルを取得し、Stringオブジェクトのタイトルに保存します。
- タイトルに保存されている値を出力ログに出力します。
#15)選択
SeleniumWebDriverのドロップダウンから値を選択および選択解除するためのクラスを選択します。
ドロップダウン関連のシナリオがよくあります。これを処理するには、Selectクラスのメソッドが使用されます。シナリオに応じて、selectByVisibleText()、selectByValue()、またはselectByIndex()を使用できます。
構文:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
説明:
- ID「select」を使用してドロップダウンを検索します。
- ドロップダウンから表示されているテキスト「Apple」を選択します。
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
説明:
- ID「select」を使用してドロップダウンを見つけます。
- ドロップダウンから値が「Apple」のテキストを選択します。
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
説明:
- ID「select」を使用してドロップダウンを見つけます。
- ドロップダウン(2番目のアイテム)から、インデックス値が「1」のドロップダウンアイテムを選択します。
選択と同様に、同様のコマンドを使用してドロップダウンから値の選択を解除できます。
コマンドを確認してください:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
説明:
- ID「select」を使用してドロップダウンを見つけます。
- ドロップダウンから表示されているテキスト「Apple」の選択を解除します。
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
説明:
- ID「select」を使用してドロップダウンを見つけます。
- ドロップダウンから値が「Apple」のテキストの選択を解除します。
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
説明:
- ID「select」を使用してドロップダウンを見つけます。
- ドロップダウン(2番目のアイテム)から、インデックス値が「1」のドロップダウンアイテムの選択を解除します。
ナビゲート()してURL間を移動します。
ランディングURLからナビゲートしてから、前後に移動したいというシナリオがよく見られます。このような場合、get()を使用する代わりに、navigate()を使用できます。ナビゲートでは、URLを指定せずにback()メソッドとforward()メソッドを使用できます。
構文:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
説明:
- https://www.softwaretestinghelp.comに移動します
- 戻ります。
- 前方に移動します。
#17)getScreenshotAs()
getScreenshotAs()を使用して、SeleniumWebDriverでページのスクリーンショット全体をキャプチャします。
これは、作業の詳細を保存したり、場合によっては手動で出力を確認したりするために必要になることがよくあります。以下のコマンドは、スクリーンショットを撮り、出力ファイルに保存するために使用されます。
構文:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
説明:
- スクリーンショットを撮り、ファイルをオブジェクトショットに保存します。
- ファイルをshot1.pngとしてDドライブに保存します。
#18)moveToElement()
ActionsクラスのmoveToElement()を使用して、マウスホバー効果をシミュレートします。
サブメニューを表示するためのメニューの上、色の変化を表示するためのリンクなど、Web要素にカーソルを合わせる必要があるシナリオがあります。これらの場合、Actionsクラスを使用します。 Actionクラスの以下の構文を見てください。
構文:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
説明
- div id「mainmenu1」のWeb要素を見つけて見つけます。
- マウスポインタを要素に移動します。
#19)dragAndDrop()
ActionsクラスのdragAndDrop()を使用して、要素をドラッグし、別の要素にドロップします。
シナリオによっては、要素をドラッグしたい場合があります。 例えば、 画像をステージにドラッグします。この場合、Actionsクラスを使用できます。
dragAndDropメソッドでは、ドラッグする要素であるSourceロケーターとドロップする要素であるDestinationlocatorの2つのパラメーターを渡します。
構文:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
説明:
- ソースWeb要素を見つけて見つけます。
- 宛先Web要素を見つけて見つけます。
- ソース要素を宛先要素にドラッグアンドドロップします。
#20)switchTo()とaccept()、dismiss()とsendKeys()
AlertクラスのswitchTo()およびaccept()、dismiss()およびsendKeys()メソッドを使用して、ポップアップアラートに切り替えて処理します。
アラート、ポップアップに切り替えて処理するには、次の組み合わせを使用します。 切り替える() そして accept()、dismiss() Alertクラスのメソッド。
構文:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
説明:
- 警告ウィンドウに切り替えます。
- アラート内に「ThisIsSoftwaretestinghelp」と入力します。
- アラートを受け入れて閉じます。
alert.dismiss() アラートを閉じるために使用できます。
#21)getWindowHandle()およびgetWindowHandles()
getWindowHandle()およびgetWindowHandles()は、SeleniumWebDriverで複数のウィンドウを処理します。
配列に値を追加する最も簡単な方法は、
Webアプリケーションに多くのフレームまたはウィンドウがある場合が多くあります。
それらは主に広告または情報ポップアップウィンドウです。 Windowsハンドラーを使用して複数のウィンドウを処理できます。 Webdriverは、ウィンドウごとに一意のウィンドウIDを格納します。このIDを使用してそれらを処理します。
構文:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
上記のコマンドは、現在のウィンドウとすべてのウィンドウのウィンドウIDをそれぞれ取得するために使用されます。以下のループを参照して、forループを介して各ウィンドウに移動する方法を確認してください。
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
説明:
- driver.getWindowHandles()のウィンドウハンドルIDごとに、そのウィンドウIDに切り替えます。
#22)getConnection()
DriverManagerからgetConnection()を使用して、データベース接続を開始します。
データベース接続を開始するには、DriverManagerクラスのgetConnectionを使用します。
構文:
DriverManager.getConnection(URL, 'username', 'password' )
説明:
- URLと資格情報を介してデータベースに接続します。
#23)その後
Excelファイルから読み取るPOI。
データ駆動型テストでは、入力をExcelファイルに保存して読み取ることがよくあります。 WebDriverでこれを行うには、POIパッケージをインポートしてから、以下のコマンドを使用します。
構文:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
説明:
- リーダーファイルを作成します。
- ファイルを読み取ります。
#24)assertEquals()、assertNotEquals()、assertTrue()およびassertFalse()
assertEquals()、assertNotEquals()、assertTrue()、assertFalse()を使用してアサートし、結果を比較します。
アサーションは、期待される結果と実際の結果を比較するために使用されます。テストの合格または不合格は、通常、アサーションの結果から判断されます。自動化では、さまざまなタイプのアサートが使用されます。
構文:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
説明:
- 最初のコマンドでは、期待値と実際の値が同じである場合は常に、アサーションは例外なく渡されます。つまり、メッセージが「このテキスト」の場合、アサーションは合格です。
- 2番目のコマンドでは、期待値と実際の値が同じである場合は常に、例外を除いてアサーションが失敗します。つまり、メッセージが「このテキスト」の場合、アサーションは失敗します。
- 3番目のコマンドでは、条件が合格すると、アサーションが合格します。つまり、結果が<0, then the assertion passes.
- 4番目のコマンドでは、条件が合格すると、アサーションは失敗します。つまり、結果が<0, then the assertion fails.
#25)close()およびquit()
close()およびquit()を使用して、ウィンドウとドライバーインスタンスを閉じます。
これらのコマンドは、すべての自動化プログラムの最後に使用されます。
構文:
driver.close() driver.quit()
説明:
最初のコマンドは、現在のウィンドウを閉じます。
2番目のコマンドは、このドライバーインスタンスを終了し、開いている関連するすべてのウィンドウを閉じます。
結論
このチュートリアルでは、さまざまなWebDriverの一般的かつ過度に使用されるコマンドを紹介しました。適切な例とコードスニペットを使用してコマンドを説明しようとしました。
私は、日常業務で日常的に使用する最も人気のあるWebDriverコマンドを説明するために最善を尽くしました。これらのコマンドを使用すると、Seleniumを簡単に操作できます。
それがあなたにとって面白くて知識が豊富だったことを願っています。
上記のコマンドのいずれかを試した自動化テスターですか?または、上記のリストで使用しているコマンドを見逃していませんか?
次のチュートリアル#18 :次のチュートリアルでは、 Webテーブル、フレーム、動的要素 これは、Webプロジェクトの重要な部分です。また、 例外処理 今後のSeleniumチュートリアルの1つで、重要なトピックについて詳しく説明します。
推奨読書
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- さまざまな人気のあるブラウザでSeleniumWebDriverを実行する方法
- 最初のWebDriverスクリプトの実装– Selenium WebDriverチュートリアル#10
- Seleniumに関するFAQ
- Selenium WebDriverでアラート/ポップアップを処理する方法-Seleniumチュートリアル#16
- GeckoDriver Seleniumチュートリアル:SeleniumプロジェクトでGeckoDriverを使用する方法
- Selenium WebDriverでの暗黙的および明示的な待機(Selenium待機のタイプ)