2

watir-webdriver を使用してテストの自動化を実装しようとしています。ちなみに、私はwatir-webdriver、ruby、およびcoの新入生です。

すべての HTML エンティティには、「wicketpath」という名前の一意の HTML プロパティがあります。「name」、「id」で要素にアクセスできますが、プロパティ「wicketpath」ではアクセスできません。XPATHで試してみましたが、成功しませんでした。

プロパティ「wicketpath」を介して要素にアクセスする方法をコードスニペットで手伝ってくれる人はいますか?

前もって感謝します。

R.

4

2 に答える 2

2

xpath を使用できるはずです。

たとえば、次の HTML を考えてみます。

<ul class="ui-autocomplete" role="listbox">
    <li class="ui-menu-item" role="menuitem" wicketpath="false">Value 1</li>
    <li class="ui-menu-item" role="menuitem" wicketpath="false">Value 2</li>
    <li class="ui-menu-item" role="menuitem" wicketpath="true">Value 3</li>
</ul>

次の xpath は、wicketpath = true を持つ li のテキストを提供します。

puts browser.li(:xpath, "//li[@wicketpath='true']").text
#=>Value 3

更新 - 代替ソリューション - ロケーターへの追加:

wicketpath を多く使用する場合は、それをロケーターに追加できます。

watir-webdriver が必要な場合は、これを追加します。

# This allows using :wicketpath in locators
Watir::HTMLElement.attributes << :wicketpath

# This allows accessing the wicketpath attribute
class Watir::Element
  attribute(String, :wicketpath, 'wicketpath')
end

これにより、「wicketpath」をロケーターとして使用できるようになります。

p browser.li(:wicketpath, 'true').text
#=> "Value 3"

p browser.li(:text, 'Value 3').wicketpath
#=> true
于 2012-05-18T16:38:03.607 に答える
0

これを試して

puts browser.li(:css, ".ui-autocomplete > .ui-menu-item[wicketpath='true']").text

上記のスクリプトが機能しているかどうかをお知らせください。

于 2014-04-08T10:27:34.843 に答える