2016-06-25 6 views

答えて

0

あなたは、たとえばgetCssValueを使用することができます。アサーションに

element.getCssValue("display") 

をあなたはあなたがWebElement.getCssValue & WebElement.getAttribute Usage

を参照することができ

String actualStatus = element.getCssValue("display"); 
String expectedStatus = "block"; //set expected value 
Assert.assertEquals(actualStatus,expectedStatus); 

のように使用することができます

+0

.getCssValue()は 'string'を' boolean'ではなく返します。 – JeffC

+0

は、JeffCの観察による回答を更新しました。 – user861594

-1

私が使用:

private boolean isAttributePresent(WebElement element, String attribute) { 
    Boolean result = false; 
    try { 
     if (element.getCssValue(attribute) != null){ 
      result = true; 
     } 
    } catch (Exception e) {} 

    return result; 
} 

そして:

​​
+0

特定のCSSプロパティ値を使用すると、テストが壊れやすくなる可能性があります。開発者が要素上で2番目のCSSクラスを使用すると、特定のプロパティをスタイルシートに入れて、追加のクラスが存在するかどうかをテストできます。そうすれば、彼らはあなたのテストを破ることなく拡張が達成される方法を変えることができます。あなたはそれについて話すべきです。また、潜在的な例外を無視しているだけです。あなたはそれを記録すべきです。そうしなければ、テストはその理由を知らずに失敗する可能性があります。 – toniedzwiedz

+0

この回答は、いくつかのインスタンスでは正しくなく、必要以上に複雑です。詳細とより良い解決策については私の答えを見てください。 – JeffC

0

をあなたはこのための機能は必要ありません。カップルのインスタンスでは、答えの関数が正しくありません。

  1. .getCssValue()try/catchのための必要はありませんので、それが見つからないだ場合でも例外をスローしません。
  2. .getCssValue()が見つからない場合はnullを返しません。空の文字列を返します。

あなたは、単に空の文字列以外の何かが、属性が存在し、値を持っていることを示していると思われる返された場合、これは

assertTrue(!element.getCssValue(attribute).isEmpty()); 

これはtrueになります行うことができます。

+0

私はこのために変更します: 'element.isDisplayed();'はブール値を返します –

+0

これはあなたが求めた質問を解決しません。要素が展開されているか、スタイルが含まれているかどうかを調べる方法を尋ねました。 '.isDisplayed()'はどちらもしません。 – JeffC

+0

'.isEmpty()'はブール値を返します。よくわかりません。 – JeffC

関連する問題