とワチール-webdriverをので、私たちは私たちのページに次のコードを持っている:要素を回避する方法ビューにスクロールすることができません - ルビー
<div class="toggle-wrapper">
<input id="HasRegistration_true" class="registration_required toggle" type="radio" value="True" name="HasRegistration" data-val-required="The HasRegistration field is required." data-val="true">
<label for="HasRegistration_true" class="">On</label>
<input id="HasRegistration_false" class="registration_required toggle" type="radio" value="False" name="HasRegistration" checked="checked">
<label class="checked" for="HasRegistration_false">Off</label>
</div>
これらは、2つのラジオボタンです。 'オンとオフ'。 「オフ」がデフォルト値です。
Watir-webdriverとRubyを使用して、「オン」ラジオボタンを選択します。私たちはこのようにそれを行う:
browser.radio(:id => "HasRegistration_true").set
しかし、そうすることで、我々は次のエラーを取得する:
`WebElement.clickElement': Element cannot be scrolled into view:[object HTMLInputElement] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)
私たちは、要素にセレン2つのスクロールにページを知っているので、スクロールダウンしようとしていることは無用です。 私たちは常に最新のリリースのwatir-webdriverとrubyを使用しています。
私たちはQAエンジニアであるため、ページのHTMLを変更することはできません。
browser.element(:xpath, "//input[@id='HasRegistration_true']").click
または
を代わりに、それはあなたが、あなたはCSSを使用したほうが良いでしょう見つけるためにしようとしている隠された要素である場合:
提供されたhtmlだけのページを使用して問題を再現できませんでした。あなたの問題を再現するために必要なページが増えていますか?どのブラウザを試しましたか(つまり、すべてのブラウザで発生していますか?)あなたは最新のwatir-webdriver宝石を使って言及しましたが、selenium-webdriverが最新であることを保証しましたか? –
あなたは「セレン2は要素をページにスクロールすることがわかっています...」これについて詳しく説明できますか?あなたはどうやってこれを知っていますか?あなたはそれが起こるのを見ていますか? –
ページにAjaxの問題がたくさんありますか?ブラウザが「読み込み」された後にレンダリングされるページの部分あなたの問題は、「準備ができている」、またはページ上の最後の位置に移動される前、つまり同期の問題で要素とやりとりすることに起因することがあります。あなたは手動でIRB経由でコマンドを試してみると、正常に動作しているかどうかを確認できます。通常は同期問題の兆候です。 –