問題
画面のテストを自動化するため、Selenideを使用する。
コード記述量を減らすため、ページオブジェクトパターンを導入したい。
しかし画面の一部要素にid/class/nameが設定されていないため、要素を取得しにくい。
解決方法
以下を使用し、要素を取得する。
:first-child
:last-child
:nth-child(n)
:nth-last-child(n)
環境
selenide 4.5
実装
最初のsectionの、最後のdivのlabelを取得
@FindBy(css = "section:first-child > div:last-child > label") public SelenideElement bottomLabel;
1番目のsectionの、後ろから2番目のdivのlabelを取得
@FindBy(css = "section:nth-child(1) > div:nth-last-child(2) > label") public SelenideElement bottomLabel;