0

セレンでいくつかの自動テストを作成した後、どのテストが開始されたかをテスターに​​知らせるメッセージ ボックスが必要です。

メッセージボックスが表示されているときにテストを実行してはならないことが重要です。メッセージボックスが表示されているときは一時停止する必要があります。

JavaScriptでこれを行いました

Object result = ((JavascriptExecutor)TestRunner.driver).executeScript("alert('" + text + "');");

ここで、このメッセージボックスを数秒表示したいと思います。私は試した:

TestRunner.driver.manage().wait(10);

Selenium selenium = new WebDriverBackedSelenium(TestRunner.driver,    TestRunner.driver.getCurrentUrl());
selenium.start();
selenium.getConfirmation();

WebDriverWait waitForOkay = new WebDriverWait(TestRunner.driver, 10);
waitForOkay.wait(10);

ただし、アラートは常にすぐに消えます。

alert.accept();

自動テストをブロックしないように、「OK」をクリックするか、タイムアウト (10 秒など) をクリックするメッセージボックスを設定する方法はありますか?

任意の入力 (それを達成するための他の方法と同様) は大歓迎です!

4

1 に答える 1

0

この状況では、待機条件は不要です。デフォルトでは、JavaScript アラート ボックスが [OK] ボタンをクリックするまで実行をブロックするためです。

サンプル コード (C# スニペット) を試してみたところ、うまくいきました。

IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://www.google.com");
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(4));
Console.WriteLine("Entering the Sync Call");
js.ExecuteScript("alert('"+ Error+"');");
Console.WriteLine("Exiting the Sync Call");

これがお役に立てば幸いです...すべてのベスト:-)

于 2012-12-14T10:59:42.137 に答える