2016-12-21 2 views
0

私はWaters 6をRspecで使用しています。選択リストにアクセスしてオプションの1つを選択する際に問題があります。選択リストの検索された要素に「真の条件」を取得できません。

URLは次のとおりです。https://www.fundingcircle.com/businesses/apply?video=true

障害が発生している問題のコードは次のとおりです。

browser.select_list(name: 'loan_product').select('Working capital') 

HTML:私は受け続ける

<select name="loan_product" required="" ng-model="prequal.borrower.loan_product" ng-options="product as product.label for product in prequal.loanProducts" styled-select="" placeholder="Please select..." fc-input="" class="ng-scope ng-pristine ng-invalid ng-invalid-required fc-touched"> 
 
<option value="?" selected="selected" label=""></option><option value="0" label="Working capital">Working capital</option><option value="1" label="Expansion/growth">Expansion/growth</option><option value="2" label="Refinancing a loan">Refinancing a loan</option><option value="3" label="Asset finance">Asset finance</option><option value="4" label="Tax payment">Tax payment</option><option value="5" label="Commercial mortgage">Commercial mortgage</option><option value="6" label="Other">Other</option></select>

エラーどのようにm

This code has slept for the duration of the default timeout waiting for an Element to be present. If the test is still passing, consider using Element#exists? instead of rescuing UnknownObjectException 
Watir::Exception::UnknownObjectException: element located, but timed out after 30 seconds, waiting for true condition on {:name=>"loan_product", :tag_name=>"select"} 
from /Users/.rvm/gems/ruby-2.2.2/gems/watir-6.0.2/lib/watir/elements/element.rb:528:in `rescue in wait_for_present' 

要素が存在し、すべての選択リストのオプションがtrueとして示しているが、残念ながら、彼らは試験によれば、可視光又は存在していないようです:私は、コードを変更しようとしている任意の時間があります。最後の選択肢は、JavaScriptを操作することだと思っていますが、もし私が助けることができれば、私はこのルートを下りたくありません。誰かが私を正しい道につけて、この問題をどのように乗り越えることができるかをアドバイスしたら、本当に感謝しています。どんな助けでも大歓迎です。

+0

使用しているブラウザ/バージョンは何ですか? Firefox v 50.1とChrome v55を使用しているときに選択リストが選択されました。 –

+0

私は、ページが読み込まれたときに、フォームコントロールの代わりに「読み込み中」のイメージがあることに気付きました。スクリプトの実行を監視する(またはスクリーンショットを撮る)場合、30秒のタイムアウト前にフォームコントロールが読み込まれていますか? –

+0

こんにちはJustin、私はChrome v55を使用しています。はい、しばらくしてから読み込まれる画像がありますが、画像がなくなっても同じ問題が発生します。テストを実行したときにオプションを正常に選択できましたか?それは私のために働いていないので。 – Azher

答えて

2

これは奇妙なものです。私のMacでは、選択リストはFirefoxでは表示されますが、Chromeでは表示されません。 Watirは、オプションをクリックしようとする前に選択リストが表示されるようにチェックします。オプション要素はSeleniumに実装されているので、常に可視に戻ります。

だから、これはあなたのために動作します:

browser.option(label: 'Working capital').click 

私は、彼らが異なっている理由はわからない、または何の問題がクローム対Windows上です。おそらくchromedriverはgeckodriverと同じisDisplayed javascriptコードを使用しています。おそらくクロームドライバのバグとしてこれを上げることができます。

+0

おかげでtitusfortner、これは実際に動作します。それは変わった問題だったし、クロムドライバのバグを起こすだろう。ブロッカーになったことに対する解決策を見つけてくれてありがとう。 – Azher

関連する問題