4

これが私が使用しているWatirコードです:

require 'watir-classic'
browser = Watir::IE.new
browser.link(:class, "Wizardbutton").exists?

これは、存在するかどうかを確認しようとしているリンクを含むページのHTMLの一部です。

<tr>
    <td align="left" style="vertical-align: top;">
        <a class="Wizardbutton"href="javascript:parent.showPopup('/web/wizard.html');window.focus();">
            <span>Add new Team</span>
        </a>
    </td>
</tr>

私が得ているエラーは次のとおりです。

Watir::Exception::UnknownObjectException: Unable to locate element, using {:tag_name=>["a"], :class=>"Wizardbutton"}

HTMLソースでリンク要素を明確に確認できるのに、リンク要素が存在しないというエラーが表示されるのはなぜですか?ページ上の他のリンクをクリックしましたが、何らかの理由でこれが表示されません。埋め込まれたスパンタグが何かを台無しにしていますか?また、hrefを使用して選択しようとしましたが、それも機能しませんでした。どんな洞察も大歓迎です!

4

2 に答える 2

3

OK、謎は解けました。Watirを使用する場合、Iframeは主要な落とし穴です。iframeの一部である要素は、特にiframeを選択してから、iframe内のアイテムを選択しない限り表示されません。たとえば、コード

browser.frame(:name, "nameOfFrame").link(:class, "Wizardbutton")

つまり、名前属性が「nameOfFrame」のiframeを指定してから、クラス属性が「Wizardbutton」のリンクを選択します。

于 2012-10-18T18:08:41.463 に答える
2

私も同じ種類のエラーに直面しています。場合によっては、div または table タグ内にブラウザー コントロールが存在する場合、watir がブラウザー コントロールを見つけられないことがあります。あなたの場合、リンク コントロールはテーブル内に配置されます。これを試してください

browser.table(:class=> "classname").link(:class => "Wizardbutton")

これがあなたを助けることを願っています

于 2012-12-17T06:21:08.297 に答える