💨
selenide 7系でCustom Conditionを書く
Selenideを業務で使っていて、ライブラリで用意されているアサーションではできないやつを書く時に、少し調べた。
※Selenide 7.2.1で確認
WebElementConditionのcheckメソッドをoverrideして使う
●特定のエレメントに期待するCSSのスタイルが存在するかの確認するメソッド
private fun existCssValue(propertyName: String): WebElementCondition {
return object : WebElementCondition("existCssValue") {
override fun check(driver: Driver, element: WebElement): CheckResult {
val cssValue = element.getCssValue(propertyName)
return CheckResult(cssValue != "none", "${propertyName} is none.")
}
}
}
should、shouldBe、shouldHaveに渡す
$("div").should(existCssValue("font-size"))
CheckResultは第一引数はboolean(実際にアサーションするもの)、第二引数は失敗したときにコンソールにActual Valueに表示されるものを入れておく。
参考:
Discussion