10

現在の自動化 (Selenium/WebDriver/Java を使用) では、@FindBy 非常に広範囲に使用しています。例えば:

@FindBy(css="a[name='bcrumb']")    protected List<WebElement> breadCrumbLinks;
@FindBy(id="skuError")         protected WebElement skuError;  
@FindBy(className="reducedPrice")  protected List<WebElement> reducedPrice;
@FindBy(partialLinkText="Injinji RUN 2.0")  protected WebElement playButton;
@FindBy(linkText="annual member refund")    protected WebElement annualMemberRefund;
@FindBy(xpath="//li[@itemprop='price']")    protected WebElement productPrice;

定義により@FindBy、次を使用してセレクターを見つけることができます: using、id、name、className、css、tagName、linkText、partialLinkText、および xpath。

最近、フロントエンド開発者は、'test=' で始まる新しい属性クラスを実装することを提案しました。@FindBy本質的に使用する値ではなく、テキストの宣伝文を探すだけで WebElements を見つけることができるので、これは素晴らしいアイデアだと思います。私の質問は、OR の既存の機能を拡張し、テストで使用する WebElements を検索する新しい方法を作成する方がよいでしょう@FindBy?

4

3 に答える 3

4

これはSelenium Locators のベスト プラクティスに役立つと思います

最もおいしいロケータ: ID 名 クラス リンク テキストまたは部分テキスト

Yummy Locators インデックス XPath 子要素 CSS プロパティ 食用ロケーター JS イベント DOM 要素 KeyStrokes 座標

于 2013-07-05T12:55:55.667 に答える
1

私があなたを正しく理解していれば、css = "[test='...']" などの css セレクターで @FindBy アノテーションを引き続き使用できます。

于 2013-07-03T18:47:15.230 に答える