💨

selenide 7系でCustom Conditionを書く

2024/03/18に公開

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に表示されるものを入れておく。

参考:
https://github.com/selenide/selenide/wiki/Custom-conditions

Discussion