2011-07-05 4 views
0

要素をクリックしようとする必要がありますが、そこになければテストは失敗しません。 「火と忘れ」の種類。存在しない場合は、必ず要素をクリックしようとする方法

私はこれをSelenese(またはuser-extensions.jsについてはjs)で直接行いたいのですが、PHPUnit/JUnitではできません。

私はおそらく "user-extensions" -functionを使ってこのことを考えていたので、openqa Siteを検索しましたが、何も役に立たなかったと思います。

アップデート:私自身の最初の試み:(動作しない)

Selenium.prototype.doClickAndForget= function(locator) { 
    this.page().click(locator)); 
    return true; 
}; 

それを動作させる方法上の任意のアイデア?

+1

この種のテストを行うことをお勧めします。あなたのテストはいつもまったく同じことをするのが良いでしょう。そうしないと、デバッグが難しくなります。 AJAXなどの理由でそこに存在しない要素に問題がある場合は、別の質問をするのが最善です。 – artbristol

答えて

0

私は "storeEval()"と純粋なjsでそれを行いました。 どちらかが有効なリンクを持っているか、「偽のklick」に必須の要素が返されているため、selはエラーをスローしません。 そのハックだけど、私は自分のサイトに "未定義"のコンテンツを持っていたので、可能性を扱う方法が必要でした。

0

はあなたの問題を解決することがありラッパー・メソッドの上に

public void clickWithoutFail(String locator){ 
    try{ 
     selenium.click(locator); 
    }catch(SeleniumException ex){ 

    } 
} 

ようDefaultSeleniumclick(String)メソッドのラッパーを作成することができますように。存在しない要素をクリックしたときに発生したエラーは無視されます。

isVisible()メソッドを使用してロケータの存在を確認することで、try/catchブロックを避けることができます。

これが役に立ちます。

+0

あなたのコードはjs(私は_user-extension.js_のために必要です)ではありませんが、私はjsでそれをしようとします。 – Loxik

関連する問題