0

単純なシナリオでも、xpathをcapybaraで動作させることができません。たとえば、次のようになります。

<div id="drawer-container" role="application" class="drawers-2">
<div class="drawer" id="drawer-1">
    <h2 role="tab" aria-controls="tabpanel-highlights">
    <a href="#" class="drawer-toggle" role="button">
        <span>Featured</span>
        <span class="context blq-hide">section collapsed</span>
    </a>
    </h2>

しかし、私がカピバラで次のことを試してみると:

find(:xpath, "div[@id='drawer-1' and @class='drawer']").click

それからそれは言うのに失敗します:

Unable to find xpath "div[@id='drawer-1' and @class='drawer']" (Capybara::ElementNotFound)

webratが原因かもしれないと読みましたが、その宝石はありません。私のカピバラのバージョンは2.0.1です

この問題の原因は何ですか?

ありがとうございました!

4

1 に答える 1

0

xpath は、どこから開始するかを指定する必要があります。ドキュメント内のどこにあるかに関係なく、div タグを見つけたいと思う可能性が高いため、xpath を "//" で開始する必要があります。

find(:xpath, "//div[@id='drawer-1' and @class='drawer']").click

上記の xpath は例外を修正しますが、必要な結果が得られない場合があることに注意してください。代わりにリンクをクリックすることをお勧めします。

find(:xpath, "//div[@id='drawer-1' and @class='drawer']/h2/a").click
于 2012-12-12T04:04:52.377 に答える