0

皆さん、

StackOverflowを初めて使用しました。よろしくお願いします...

Seleniumを使用して、HTMLページの[今すぐ購入]ボタンをクリックしようとしています。HTMLスニペットは次のとおりです。

</div>
    <a href="javascript:void(0)" class="buttonCheckout">Buy Now</a>
    <a href="#" class="buttonSoldout">Sold Out</a>
</div>

Selenium IDEを使用して正しいXpathロケーターを取得しましたが、クリックイベントは常に失敗します。

>> chk = "id('yui-gen2')/x:div[3]/x:div/x:a[1]"
=> "id('yui-gen2')/x:div[3]/x:div/x:a[1]"
>> @selenium.get_xpath_count(chk)
=> "1"

>> @selenium.click(chk)
**Error**

>> chk = "xpath = " + chk
=> "xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1]"
>> @selenium.click(chk)
**Error**

The **Error** is:
selenium-client received failure from selenium server:
requested:
 cmd=click
 1=xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1]
 sessionId=d4d6796b3c9749139621cd0cbcde80b2
received:
 "ERROR: Element xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1] not found"
 called from C:/Ruby187/lib/ruby/1.8/timeout.rb:67:in `timeout'
 enium::CommandError: ERROR: Element xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1] not  found

@selenium.double_click(chk)フォーラムで他の提案をいくつか試しました@selenium.fire_event(chk, 'click')が、同じ要素が見つかりませんというエラーが発生します。

また、上記のすべての種類の順列を試し、他のXpath(、、、)を試しchk = "//a[@class='buttonCheckout']"ましchk = "/descendant::a[@class='buttonCheckout']"chk = "//a[@href='javascript:void(0)']"

get_xpath_countこれらすべての場合において、この方法は機能するがclick常に失敗するため、適切なロケーターを見つけたと思います。

ここに何か提案はありますか?前もって感謝します!

4

2 に答える 2

1

エラーメッセージ「Elementxpath=... not found」は、実際の問題を明確に示しているため、ダブルクリックしてイベントを起動しても効果はありません。

FirefoxのSeleniumIDEプラグインをインストールして、録音を開始し、[今すぐ購入]ボタンをクリックしてみてください。Selenium IDEは、要素を見つけるための何らかの方法を自動的に見つけます。また、通常、ドロップダウンリストにいくつかのロケーターバリアントが表示されます。

また、XPather / XPathチェッカープラグインを使用して、適切なxpathロケーターバリアントを見つけてチェックすることもできます。

于 2010-10-24T07:05:23.483 に答える
0

これは恥ずかしいことですが、私はそれを理解しました...XPathロケーターは問題ありませんでした。

問題は、ステートメントのスペースにありました。

chk = "xpath = " + chk

そのはず:

chk = "xpath=" + chk

そして、すべてがうまく機能します。

初心者ハァッ。

皆さんありがとう。

于 2010-10-24T20:16:00.520 に答える