2

Intel のhtml5 アプリ開発フレームワークを使用しています。特に、カルーセル プラグインを使用しています。しかし、ここでは webdriver の知識がより役立つと思います。

彼らのカルーセルの仕組みは、幅が制限され、オーバーフローが隠されている div 内でページが隣り合ってフロートすることです。div の「ビューポート」から一度に 1 つのページしか見ることができません。

タッチして次の div に移動すると、css 変換が適用され、ページの div がスライドしてアニメーション化されます。これはうまくいきます。ただし、webdriver はアニメーション div 内の要素に問題があります。

最初のページにいるとき、セレンは (両方のページの) すべての要素が表示されていると報告しますが、それらの半分が非表示になっています。2 番目のページに遷移すると、selenium は (両方のページの) すべての要素が表示されていないと報告します。

アニメーション div に適用されるこの css プロパティまで追跡しました。

-webkit-transform: translate3d(-1024px, 0px, 0);

これが適用されると、セレンはこの要素が見えないと考えます。Chrome 開発者ツールを使用して削除すると、すべて表示されていると見なされます。

あなたが私を助けることができるかもしれない2つの方法:

  • これらの要素の可視性を正しく報告するようにセレンを取得できますか? おそらく、カルーセルの動作方法を微調整することによってですか? (オープンソースです)。
  • 「表示されていない」にもかかわらず、とにかく要素をクリックするようにセレンに指示できますか?
4

2 に答える 2

1

これは、セレンのバグを回避することで問題を解決します。

new Actions(driver).MoveToElement(element).Click().Perform();

Selenium は、このコードを使用してリンクをクリックできます。今、私は、セレンのメンテナーへのバグレポートとして使用するための最小限の例を試して取得する必要があります...トリッキーです.

于 2013-07-16T12:53:06.847 に答える