Seleniumの明示的待機(Explicit Wait)とは?仕組みと使い方を解説
明示的待機(Explicit Wait)とは?
明示的待機(Explicit Wait)は、Webページ上の特定の要素に対して適用される待機処理です。あらかじめ設定した条件が満たされるまで、テストの実行を一時停止します。
明示的待機は動的な待機である点も大きな特徴です。たとえば待機時間を15秒に設定した場合でも、その時間内に条件(要素がクリック可能になる、表示される、選択可能になるなど)が満たされれば、残りの時間を待つことなく次のステップへ処理が移行します。
明示的待機の主な期待条件(Expected Conditions)
明示的待機は条件ごとに細かく設定できるため、非常に柔軟なカスタマイズが可能です。以下に、よく使われる期待条件の一部とその構文を紹介します。
textToBePresentInElement()
指定した要素内に特定のテキストが表示されるまで待機します。
w.until(ExpectedConditions.textToBePresentInElement(By.id("<<id式>>"), "Tutorialspoint"));elementToBeClickable()
指定した要素がクリック可能な状態になるまで待機します。
w.until(ExpectedConditions.elementToBeClickable(By.id("<<id式>>")));alertIsPresent()
アラート(ダイアログ)が表示されるまで待機します。
w.until(ExpectedConditions.alertIsPresent());
frameToBeAvailableAndSwitchToIt()
指定したフレームが利用可能になり、そのフレームへ自動的に切り替わるまで待機します。
w.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("<<フレームID>>")));明示的待機の特徴と注意点
明示的待機は実装の面ではやや複雑ですが、テスト全体の実行速度に悪影響を与えることなく、ページ上の特定の要素にだけ待機を適用できる点がメリットです。
なお、最大待機時間を過ぎても条件が満たされなかった場合は、ElementNotVisibleException がスローされる点に注意が必要です。
Javaでの実装例
以下は、明示的待機をJava(Selenium WebDriver)で実装したサンプルコードです。
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.support.ui.WebDriverWait;
public class ExplicitWaitExample {
public static void main(String[] args) {
// ChromeDriverのパスを設定
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String url = "https://www.tutorialspoint.com/index.htm";
driver.get(url);
// 暗黙的待機:すべての要素に対して12秒を設定
driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
// 「Coding Ground」リンクをクリック
driver.findElement(By.xpath("//span[text()='Coding Ground']")).click();
// 明示的待機の宣言(最大10秒)
WebDriverWait w = new WebDriverWait(driver, 10);
// textToBePresentInElementメソッドで待機条件を設定
w.until(ExpectedConditions.textToBePresentInElement(By.xpath("//img[@title='Whiteboard']"), "Whiteboard"));
driver.quit();
}
}
-
Windowsの「システムの復元」とは?仕組みから使い方・注意点まで徹底解説
Windowsパソコンを以前の状態に戻せる「システムの復元」は、トラブル発生時の強力なセーフティネットとなる便利な機能です。定期的に復元ポイントを作成しておくことは、PC運用のベストプラクティスとされています。ただし、システムの復元はWindowsに一定の影響を与えることもあり、インストールの失敗やデータ破損につながるリスクがゼロというわけではありません。この記事では、システムの復元がWindowsに与える影響を整理しながら、最適な活用方法を詳しく解説します。システムの復元は何をする機能?システムの復元は、正常に動作していた時点のシステムのスナップショット(復元ポイント)を作成し、問題が発生し
-
ウイルス対策ソフトの機能とは?仕組み・選び方まで徹底解説
ウイルス対策ソフトを信頼するのは、誰しも少し不安に感じるものではないでしょうか。ネット上には高機能なアンチウイルスツールが数多く存在しますが、その中から本当に優れたソフトを一つ選ぶとなると、決断に迷ってしまうのが実情です。サイバー犯罪が急増しているデジタル時代において、大切なデバイスを守るためには、包括的なセキュリティ対策ソフトの導入が不可欠となっています。 しかし、ウイルス対策ソフトは実際どれほど効果的なのでしょうか?本当にウイルスやマルウェア、その他のサイバー脅威からデジタルデバイスを守ってくれるのか、それとも単なる神話なのでしょうか?そもそも、ウイルス対策ソフトは何をしてくれるのか、じ