0

Firefoxで大きなセレンスイートを作成しようとしていますが、ChromeやIEでこれらのテストがどれほど難しいのかは疑問です単純に別の方法でレンダリングされ、既にそれらをリンクさせて他のドライバを動作させるようにしています。WebDriver - FFDriverからChromeDriverまたはIEDriverに切り替えることはできません

何か提案や経験について教えてください。事前に感謝、ロレンツォ。

答えて

0

私はセレニウムがブラウザにはあまり十分なブラウザではないことを発見しました。ほとんどの小さな欠点は、サポートされているすべてのブラウザで単一のテストが円滑に実行されないようにします。多くのコースは、テストされるページの複雑さとテストコードの複雑さに依存します(これはコード化されていて、記録されていないと仮定しています)。

WebDriversの上に抽象レイヤーを作成して、ブラウザーのインスタンス(jQueryの仕組みを考えてください)に応じて動作を正規化しながら一般的なアクションを公開します。

+0

これは全く私の経験されていません。 「小さなテストでは、1つのテストが円滑に実行されないようにする」という具体的な例を示した場合に役立ちます。 – JimEvans

+0

"テストされるページの複雑さに依存します"。私は私に例を挙げていません(具体例はバグレポートとして提出されています)が、私はIE8ではなく、FirefoxやChromeでテストを通過しているので、私の想像や軽薄な観察ではありません。 – prestomanifesto

+0

私のアプリでは、いくつかの入力ボックスはFFで各ボックスごとに2つの方法で開発されています。 1つは表示され、1つは非表示になっています。実際の入力ボックスに表示されている桁をクリックするだけで、Chromeでは表示されず、デジタル化されていることがわかります。 –

2

一般に、この種のシナリオはテンプレートパターンの候補です。 Webdriverを使用しているので、ページオブジェクトパターンと組み合わせると、重複したコードを最小限に抑えることができます。

一般的に使用されている手順を実行するヘルパーオブジェクトを作成することが考えられます。ほとんどの手順はブラウザ間で同じです。しかし、ブラウザによってUIが変わるため、特定のアクションにはカスタムステップが必要です。したがって、抽象基盤からほとんどのステップを継承し、UIの違いによって同じ基本コードを再利用できない特定の機能を実装する具体的な実装を行います。

例えば、2つの入力ボックスがあるページでは、firefoxで必要なアクションを実行するには2回のクリックが必要ですが、Chromeの実装では1回のクリックで済みます。ログインとナビゲーションの手順は(理論的に)同じで、基本クラスを介して共有できます。

テストフレームワークのSetUpメソッドでヘルパーオブジェクト(ページファクトリなど)を設定します。テストでヘルパーオブジェクトの適切なメソッドが呼び出され、アクションが実行され、結果が検証されます。

参考文献:

関連する問題