8

次のシナリオを考えてみましょう。

  1. ウェブページは垂直スクロールバーとともに表示されます
  2. スクロールバーは下部にあります
  3. WebElement 'Test' はページの上部にあり、現在のビュー ポートには表示されません。

検証する機能:

ページの下部にある [トップに移動] リンクをクリックすると、WebElement の [テスト] がビュー ポート内に表示されるようにページがスクロールされます。

現在のビューポートに要素が表示されているか、WebDriverを使わずに確認する方法を教えてください。

注: 上記の場合、関数は現在のビュー ポートのみをチェックするのではなく、ページ全体をチェックするため、element.isDisplayed は常に true になります。

4

3 に答える 3

1

さて、私の頭に浮かぶ最後のこととして、私は次のようなものに行きます:

  1. 下部のリンクをクリックした後、持っているもののスクリーンショットを取得します(ビューポートのスクリーンショットのみが表示されることを確認してください)
  2. Webdriverwindow.scrollTo を使用してトップに移動します (以下を参照)。
  3. 最初のステップを繰り返します
  4. 第 1 段階と第 3 段階の結果を比較する

Webdriverを使用してスクロールする場所は、次のように機能する必要があります。

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollTo(0,0)");

必死の回避策のように思えますが、他の解決策が提案されていない場合は、努力する価値があるかもしれません.

于 2013-08-16T09:43:04.887 に答える