2

私はこのようなユーティリティメソッドを持っています:

public void verifyTitle(int secsToWait) {
    new WebDriverWait(driver, secsToWait)
            .until(ExpectedConditions.titleIs(title));
}

失敗した場合のメッセージは次のとおりです。

org.openqa.selenium.TimeoutException

タイトルが表示されるのを待って2秒後にタイムアウトになりました:ここにいくつかのタイトルビルド情報:バージョン: '2.2.1'、リビジョン: '16551'、時間: '2012-04-11 21:42:35'システム情報:os。名前:'Linux'、os.arch:'i386'、os.version: '3.0.0-16-generic'、java.version: '1.7.0_04'ドライバー情報:driver.version:不明

より良いエラーメッセージを表示するためのAPIが見つかりません。私が欲しいのは:

タイトルが表示されるのを待ってから2秒後にタイムアウトになりました:ここにいくつかのタイトルがあります(ただし、タイトルは次のとおりです:他のタイトル)

以下に示すようにtry/catchでそれを行うことができますが、他のオプションがあるかもしれませんか?

public void verifyTitle(int secsToWait) {
    try {
        new WebDriverWait(driver, secsToWait)
                .until(ExpectedConditions.titleIs(title));
    }
    catch (TimeoutException e) {
        throw new AssertionError(String.format("Expected page title [%s] but was [%s]", title, driver.getTitle()));
    }
}
4

3 に答える 3

5

withMessage()次の方法を使用します。

WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.withMessage("Any message you want");
wait.until(ExpectedConditions.titleIs(title));
于 2012-07-18T16:48:19.850 に答える
0

より良いメッセージを提供するJUnit のassertEqualsと比較することもできます

そのような:

org.junit.ComparisonFailure: expected:<[something]> but was:<[differentthing]>
于 2012-05-31T07:28:32.733 に答える
-1

シナリオに合格したい場合は、これを計算してください。

Public CustomWebDriverException(String msg、WebDriver custWebDriver){

    super(msg);

    this.driver = custWebDriver;

}

キャッチがある場合は、このコンストラクターを呼び出します

public CustomWebDriverException(Throwable e、WebDriver selenium){

    super(e.getMessage());
    this.driver = selenium;
}

testNgやmavenで管理できるものはほとんどないので、セットアップやフレームワークなどの他のことについて詳しく教えてください。

于 2012-05-30T21:08:55.737 に答える