2016-04-22 11 views
1

とPayPalのサンドボックスの賃金は、私はエラーにワチールのwebdriverを持つ要素を見つけることができない、Firefoxの、ペイパル

Watir::Exception::UnknownObjectException: unable to locate element, using 
{:id=>"submitLogin", :tag_name=>"input"} 
from /Users/ktobo/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/ 
gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:536:in 
`assert_element_found' 

を取得しています。

# select "Pay with my PayPal account" 
@browser.span(:class, 'buttonAsLink').when_present.click 
@browser.text_field(:id, 'login_email').when_present(15).set(hsh[:email]) 
@browser.text_field(:id, 'login_password').when_present(15).set(hsh[:password]) 
@browser.input(:id, 'submitLogin').when_present.when_enabled.click 
@browser.input(:id, 'continue').when_present.click 

これらの手順をコンソールで1つずつ実行すると、すべてが素晴らしいです。 run.rbでテストを実行すると、最初のクリックアクションが「PayPalアカウントで支払う」スパンを選択できないようです。なぜそのステップで失敗しないのか分かりません。失敗した後に手動でリンクをクリックすると、パスワードフィールドに値が入力されていないことがわかります。そのため、4行目までに何かが間違っているようです。でもwhen_present通話と

答えて

2
  1. 直接一緒に実行すると、それはIRBで段階的に動作しますが、ない場合は、これが最も可能性の高い競合状態です。デバッグするときは、競合状態になっているかどうかを確認するだけで問題が発生する前に(長い時間)スリープ状態にすると便利です。睡眠がそれを修正した場合、問題が何であるかを知っていて、クリックする前に正しいことを理解する必要があります。

  2. これは、オペレーティングシステムの「アクティブなウィンドウ」にあるブラウザが問題となる可能性があるという別の可能性です。 (コマンドは同じ方法で動作しますが、必ずしもそうではありません)。

  3. さらに、Chromeでテストを実行して、同じ問題が発生していないかどうかを確認することもトラブルシューティングに役立ちます。

これが機能しない場合は、あなたの質問をURLまたはインタラクティブなhtmlで更新してください。

脇には、ネスティングwhen_present & when_enabledが驚いています。 when enabledはおそらくpresent?を前提条件として含める必要があります。

+0

長い睡眠を追加することで、私は問題を発見することができました。 'buttonAsLink'スパンを選択すると、2つの支払い方法が切り替わります。 '' id = "method-paypal" 'や' id = "method-cc" 'が現在選択されているdivに関係なく動作するdiv' id = "method-paypal"を選択する必要がありました。 私はちょうどうまく動作している 'when_enabled'にも切り替えました。 –

関連する問題