0

私は次のコードを持っています。

String rowNum = Integer.toString(rand.nextInt(max - min + 1) + min);
WebElement randomRow = driver.findElement(By.xpath("/html/body/div/div/div/div/form/div/div[2]/div/div[2]/div/div/div/div/div/div/div/table/tbody/tr["+rowNum+"]/td/div/input")); 
Assert.assertEquals(randomRow.getAttribute("checked").equals("checked"), "checked", "YES is not selected");

基本的にrandomRowはテーブルからのランダムな行であり、ラジオボタンが含まれている最初の列をチェックしています。ラジオボタンには、checked="checked"の属性が必要です。

テストがアサートにヒットすると、次のように失敗します。

YES is not selected expected [checked[ but found ]false]

この主張が失敗している理由について何か考えはありますか?

4

1 に答える 1

1

ブール値と文字列の2つのオブジェクトのIDを比較しているため、アサートは失敗します。ブール値または文字列を比較する必要があります。

これ

randomRow.getAttribute("checked").equals("checked") 

ブール値を返し、それを文字列「checked」と比較しています。アサーションは次のようになります。

行の属性が「checked」であることを確認する場合は、次のようにアサーションをより簡潔に記述できます。

Assert.assertEquals(randomRow.getAttribute("checked"), "checked", "YES is not selected");
于 2012-12-11T15:08:13.233 に答える