2

カピバラ要素をクリックしようとすると、奇妙なエラーが発生します

  • find(:xpath、 "// a [contains(text()、'Connect')]")。clickを使用しています
  • (find(:xpath、 "// a [contains(text()、'Connect')]")。present?return true)

私が得るエラーは次のとおりです。

Selenium :: WebDriver :: Error :: MoveTargetOutOfBoundsError例外:要素をスクロールしてview:javascript:void(0);に入れることはできません。

私はいくつかの調査を行いましたが、私が見つけた唯一の解決策は、セレンのバージョンを2.16に設定すると、この問題が解決する可能性があることです(2.25を使用しています)。

誰かアイデアがありますか?

4

3 に答える 3

1

テスト中のページが現在のウィンドウ サイズに収まらない場合に発生する可能性があります。通常、これらのエラーが発生するページを知っている場合は、そのような非表示の要素 (クリック、クリアなど) を操作する前に、明示的に下にスクロールすることができます。ここでは、ページを明示的に下にスクロールするコードを示します。

ジャバでは、

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("javascript:window.scrollBy(250,350)"); 
于 2012-12-26T05:29:46.943 に答える
0

Selenium webdriver を使用して .NET アプリをテストしていたときから、問題がまさにそのように聞こえるときに、そのエラーが発生しました。何らかの理由でスクロールできないページ上のオブジェクトを探しています。私の場合、一部のダイアログ ボックスがスクロールバーなしで表示され、ドライバーが「オブジェクトをスクロールして表示する」方法がなかったことが原因でした。

テストの実行を見て、そうであるかどうかを確認できますか? 15 +(問題が発生した約2か月前の時点)はWebドライバーでサポートされておらず、定期的にこの問題が発生していたため、以前のバージョンのfirefoxにロールバックすることができました。セレンのバージョンをロールバックすることも役立つ場合があります。

ただし、最初のステップは、テストの実行を監視し、何が起こっているかを確認することです。そして、良いデバッグのアイデアは、手動でテストが機能することを確認するために、手動でステップを実行しようとすることです。

また、webdriver がクリックを実行できるようにするには、オブジェクトが実際に表示されている必要があることにも注意してください。IsPresent はそれを必要としません。ページ ファイルを検索するだけです。また、私が遭遇した問題。IsPresent は、ページに表示されていない、または表示できないオブジェクト (つまり、その時点ではページの下部に表示されていないもの) に対して true を返します。

于 2012-11-06T20:02:04.573 に答える