3

JavaScript ベースの Web アプリケーションの機能テストを自動化するために、Selenium Webdriver を使用しています。JavaScript コード (knockout.js) は、SELECT ドロップダウン リストの OPTION 要素の 1 つを別の色 #FFFFCC に設定します。これは、rgba(255, 255, 204, 1) (明るい黄色) (firebug で検証済み) です。

セレンで使用する私のコードは次のとおりです。

    Select select = new Select(driver.findElement(By.id("views"))); // get the select
    List<WebElement> allOptions = select.getOptions(); // get all the options

    for (WebElement option : allOptions) { //iterate over the options
      if (option.getCssValue("background-color").compareToIgnoreCase("rgba(255, 255, 204, 1)") == 0) {
         // do something 
      }
    }

しかし、その if ステートメントは常に失敗します。system.out.println() を値に対して実行するとoption.getCssValue("background-color")、すべてのオプション要素に対して「透明」が返され、変更されたオプション要素に対して「rgba(51, 153, 255, 1)」が返されます。16 進数に変換すると、 #3399FF (青色)。

セレンがこの要素の間違った 16 進値を報告するのはなぜですか?

4

1 に答える 1