9

jQueryメニュー要素を見つけてクリックしようとしています。メニューは、多数のLI要素を含む複数のUL要素として定義されています。

私が使用した標準のWATIRで、Mac10.5でFirefox3.6.17を使用します。

browser.li(:text,"Options...").click

また

browser.div(:id,"Attributes-menu").li(:text,"Copy").click

メニュー項目をクリックしますが、watir-webdriver(0.2.3)を使用すると、LI要素が見つからないと報告されます。:classを使用して、含まれているDIVとLIのインスタンスを見つけることができますが。

以下にメニューHTMLの例を添付しましたが、LIアイテムを見つけるための信頼できる方法を誰かが提案できますか?

<div class="ws-menu-container ws-context-menu ws-context-menu-hidden" style="top: 16px; left: 214px; " id="Attributes-menu">
<ul class="ws-context-menu"><li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Copy&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Add...&nbsp;&nbsp;&nbsp;</li>
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Remove...&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Clear Translation Flag&nbsp;&nbsp;&nbsp;</li>
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Copy from Master Language...&nbsp;&nbsp;&nbsp;</li>
<li class="ws-context-menu-disable">&nbsp;&nbsp;&nbsp;Push to Child Languages...&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu">&nbsp;&nbsp;&nbsp;Options...&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu">&nbsp;&nbsp;&nbsp;Refresh&nbsp;&nbsp;&nbsp;</li></ul>
<hr class="ws-context-menu-separator">
<ul class="ws-context-menu">
<li class="ws-context-menu">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</li></ul></div>
4

3 に答える 3

20

これは私のために働いた:

browser.div(:id => "Attributes-menu").li(:text => /Copy/).click
于 2011-05-10T11:36:59.787 に答える
3

見つからない理由はnbsp;です。Željkoの正規表現ソリューションに加えて、探している文字列にノーブレークスペースのUnicodeバイトを追加することで、これを実行できるはずです。例:

browser.li(:text => "\xc2\xa0\xc2\xa0\xc2\xa0Options...\xc2\xa0\xc2\xa0\xc2\xa0")
于 2011-05-10T18:49:43.340 に答える
1

Zeljkoのソリューションを実行するには、文字列変数を使用して、文字列変数から正規表現クラスの新しいインスタンスを作成する必要があります

searchtext = Regexp.new(mystringvariable)
browser.div(:id => "Attributes-menu").li(:text => searchtext).click

詳細については、RubyRegexpクラスのRdocを参照してください。

于 2011-05-11T18:51:36.717 に答える