私はソフトウェア品質保証エンジニアで、Web ページの自動テストを作成しようとしています。
背景:
私の会社が使用している Selenium のフレームワークでは、オブジェクトとして保存された X パスのみを使用でき、「click(someobject)」や「enter(someobject)」などの既存のメソッドを使用できます...
問題:
現在、同じクラスにある複数のボタンを選択するテストを作成しようとしています。選択できるようにする必要がある 6 つのセット ボタンがあります。今、私はこれを行うことができますが、以下を使用します:
`//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[1]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[2]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[3]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[4]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[5]/div/a
//*[@id="tenant-details-accordion"]/div[1]/div[2]/div/div[2]/div[6]/div/a`
-ただし、これは一時的なものに過ぎません。これは、後でボタンを削除するとテストが失敗するためです...各ボタンに一意の ID を追加することについて、開発チームと話し合いました。しかし、それは彼らが行きたい道ではないようです...
考えられる解決策:
- セレンの「範囲」を狭めることは可能ですか?
たとえば、Selenium にページ全体ではなく特定のクラスを調べるように指示しますか?
-私の考えでは、クラスを検索し、特定のテキストに一致させてから、[設定] を選択します。 はいの場合、複数の X パスの 何かを組み合わせることも可能ですか....
//div[@class='col-sm-4'].... //div[contains(.,'Birth Date: Set +')]
私の考えでは、Selenium が実際に調べているものを絞り込む Xpath を作成できると思います..
- クラスの検索
- テキスト「生年月日」を検索する
- セットボタンの選択