0

expando プロパティのようなカスタム プロパティによってページ上の要素を検索するための提案はありますか?

問題: サイトでは、ボタンに多数の JSP と動的イメージが使用されています。静的な名前や ID はありません。(すべてのページに「次へ」または「続行」ボタンがあるが、現在のコンテキストに応じて動的に移動する登録またはチェックアウト プロセスを考えてみてください)

推奨される解決策: これらは自動化できないという私の繰り返しの要求に対して、最近、"btn-tag-title" のカスタム expando プロパティで回答されました。

ページ上のすべての要素に btn-tag-title= という名前の一意の (ただしカスタムの) プロパティがある場合、Selenium 2.0 は毎回それを信頼できると判断できますか?

その他の推奨ソリューション?

    log.info(driver.getCurrentUrl());
    assertTrue(selenium.isElementPresent("btn-tag-title=Sign In"));
    selenium.type("name=username", "demo");
    selenium.type("name=password", "tester");
    selenium.click("btn-tag-title=Sign In");
    log.info(driver.getCurrentUrl());
4

1 に答える 1

0

もちろん。XPath または CSS ロケーターのいずれかで要素の任意の属性を参照できます。例えば:

assertTrue(selenium.isElementPresent("//*[@btn-tag-title='Sign In']"));
...
selenium.click("//*[@btn-tag-title='Sign In']");

また

assertTrue(selenium.isElementPresent("css=*[btn-tag-title='Sign In']"));
...
selenium.click("css=*[btn-tag-title='Sign In']");

id=価値があるのは、開発者がすべての興味深い要素に一意の値を保証するカスタム プロパティを配置できる場合、代わりにその値を属性に配置しない理由を開発者に尋ねる必要があることです。要素 ID は HTML、DOM、および Selenium では特別であり、要素は ID によって他のどの手法よりもはるかに迅速に見つけることができるためです。

于 2011-11-18T18:10:24.763 に答える