CSS、名前、ID、構造、さらには見つかったテキストに基づいて、いくつかの方法で Web サイトの特定のフィールドを検索できます。どの方法を使用することにしましたか?
そのためのベストプラクティスは何ですか?
編集:開発者の観点から質問しています:1つの方法でSeleniumでテストしやすいコードを書く方法(つまり、名前ですべてを検索できること)
CSS、名前、ID、構造、さらには見つかったテキストに基づいて、いくつかの方法で Web サイトの特定のフィールドを検索できます。どの方法を使用することにしましたか?
そのためのベストプラクティスは何ですか?
編集:開発者の観点から質問しています:1つの方法でSeleniumでテストしやすいコードを書く方法(つまり、名前ですべてを検索できること)
私たちは通常、xml構造から離れています。これは、非常に脆弱なテストを生成することが判明しています。私たちの内部組織は、CSS名を立ち入り禁止にします。これは、設計担当者が操作するためのものだからです。誰かがheading1からheading2にスタイルを変更するため、テストが中断することは望ましくありません。
主にIDに基づくソリューションを選択しました。セレンテストを実行できるようにするためだけに、IDを使用してHTMLをインストルメント化することもあります。
さらに、テキスト(アプリケーションテキスト)も探しますが、国際化によってこれは少し面倒になります。テストフィクスチャのロケールを認識できるようにしました。
私は、'id' または 'name' 属性を探す XPath 式を好む傾向があります。
ただし、IE6 で定期的にテストを実行する場合は、ロケーター式に XPath を使用することに注意してください。IE6 での XPath の実行は、それ以降のバージョンや Firefox と比較して著しく遅くなります。Firefox では 1 時間かかるのに対し、IE6 では完了するのに 3 時間以上かかる、かなり大きな SeleniumRC テスト スイートがあります。
あなたがそれをすることを覚えていれば、IDはほとんどの場合最高です.
しばらくして、他のオプションを発見しました。独自の属性を作成し、Selenium IDE の JavaScript 関数を構築して、この属性に基づいて xpath を生成します。それはそれほど難しいことではありませんでした:)
これにより、テストの生成と保守が非常に簡単になります (突然スパンが div になると;))
コード全体でIDを使用することを確認すると、非常に役立ちます。その要素がスパンからdivに変更されても、IDは一貫性を保ちます。'name'はidに似ています。リンクはまともですが、リンクテキストが変更される可能性が高いものにならないように注意する必要があります。
これが私のロケーターのランキングです。良いものから悪いものまで:id name link css ui xpath