2017-04-18 10 views
1

Robot Frameworkに要素が特定のクラスを持つようにするためのキーワードがありますか?要素が特定の値を持つ特定の属性を持つ場合は代わりロボットフレームワーク、クラスの確認方法

Element should has class element className

のようなものは、私がチェックすることができます。要素が複数のクラスを含む可能性があるため、Formerはより適しています。

答えて

4

あなたは、XPathセレクタを経由して新しいキーワードを作成することができます。

Element should have class 
    [Arguments] ${element} ${className} 
    Wait until page contains element ${element}[contains(@class, '${className}')] 

またはCSSセレクタを経由して:要素が存在する場合

Element should have class 
    [Arguments] ${element} ${className} 
    Wait until page contains element ${element}.${className} 

Wait until page contains elementがチェックするためにお好みの任意のキーワードで置き換えることができ、 Element should be visibleのように表示されます。

+0

'| FAIL | id loginButtonとclass button-blueの要素があっても、要素 'loginButton [contains(@class、' button-blue ')]は5秒後に表示されませんでした。最初の例のclassNameは、変数を評価するために中括弧が必要であるとも考えました。 –

+1

@TuomasToivonen:中括弧を忘れてしまいました。申し訳ありません。それは今のところうまくいくはずです。 'loginButton'は有効なXPathでもCSSセレクタでもないので、'#loginButton'か '// * [@ id = 'loginButton']'を使ってください。 – Renzeee

3

(受け入れ答えのCSS 1はかなり良いですが)ここでは、セレクタ戦略のあらゆる種類のために働いて、代替ソリューションです:

Element should have class 
    [Arguments] ${locator} ${target value} 

    ${class}=  Get Element Attribute ${locator}@class 
    Should Contain ${class}  ${target value} 

それは、他の属性に変更することができます - ちょうどGet Element Attribute@classを代用それと(あるいは、それをオプションの引数にして)。

関連する問題