HTML は次のとおりです。
<section class="my-account-box-element">
<span class="item icon-home icon-color-1"></span>
</section>
条件によって「icon-home icon-color-1」から「icon-home icon-color-0」に変化するクラス名を基にアサーションを行う必要があります。
HTML は次のとおりです。
<section class="my-account-box-element">
<span class="item icon-home icon-color-1"></span>
</section>
条件によって「icon-home icon-color-1」から「icon-home icon-color-0」に変化するクラス名を基にアサーションを行う必要があります。
By
最初に、を使用して検索するときに 2 つのクラスを追加できないことを警告する必要があります。これは、例の'item'、'item-home'が同じであるためです。主な違いは'item-color-1'と'item-color-0'にあると仮定します。
WebElement myAccountBoxElement = driver.findElement(By.className("my-account-box-element"));
WebElement spanItem = myAccountBoxElement.findElement(By.tagName("span"));
boolean itemColor = (spanItem.getAttribute("class").contains("item-color-1")) ? true : false;
if (itemColor) {
// do stuff for item-color-1 element
}
// do stuff for the item-color-0 element
}
上記のコードが実際の HTML である場合、上記のコードは問題なく動作するはずです。さらにタグがある場合は、findElements()
代わりに使用してループします。
また、これらの2つの要素のみを使用している場合、よりクリーンなコードを保持するため、三項ifを使用しました
必要に応じて変更
assertTrue(driver.findElements( By.Xpath(".//span[contains(@class,'icon-color-1')]")).size() != 0)