20

私の会社の開発者は、私たちの Web サイトを CSS レスポンシブに実装しましたが、Selenium を活用して彼らの作業をテストする方法がわかりません。私は、Ruby と一緒に Selenium WebDriver (Selenium 2) を他の面で使用してきました。

オンラインでいくつかの調査を行った後、複数のツールに出くわしましたが、自動化する価値のあるツールはありません.. aaa ...さまざまな画面サイズで手動でチェックするための単なるWebツールです。

いくつかの例 -

  1. レスポンシブ CSS レイアウトのデバイス テスト (手動)
  2. 責任者
  3. Responsive.is
  4. Responsivepx (より多くの制御ができるほど優れています)

しかし、Seleniumとsel2/rubyを使用して、上記を非常に簡単に実現できます

@driver.manage.window.resize_to(480, 725) #iphone potrait

助けが必要

  • cssが自動的に「レスポンシブ」であるかどうかを実際にテストする方法は?
  • ページがウィンドウのサイズ変更に応答しているかどうかを確認するために一般的に使用される属性/側面は何ですか?
  • QAレスポンシブCSSにSeleniumを使用した人はいますか?
4

4 に答える 4

5

これを行うには2つの方法が考えられます。

1 つ - Web 要素ごとに、そのサイズ、場所、可視性などを確認できます。サイズを変更するたびに、それらのパラメーターを以前に指定した値と比較して、レイアウトが変更されたかどうかを確認できます。

第二 - 画像比較。サイズを変更するたびに、ページのスクリーンショットを撮り、以前に保存したパターンと比較できます。それを実現するためのさまざまな画像比較ライブラリがあります。当社ではImageMagickを使用しています。ただし、画像比較は、開発中のページやコンテンツが変化するページには適していません。この問題は、javascript で変更されやすいページの部分を非表示にすることで回避できます (これは WebDriver で実行できます)。

レスポンシブ ページを手動または自動でテストする機会がなかったことを認めなければならないため、上記は単なる私の考えです。「通常の」ページのテストには画像比較を使用しますが、レスポンシブ ページにも適しているかどうかはわかりません。

編集

残念ながらRubyはわかりません。以下は Java での例です。理解して、何とか Ruby に翻訳していただければ幸いです。このコードは、リストからすべての要素のサイズと位置を出力するだけです。

org.openqa.selenium.Point point;
org.openqa.selenium.Dimension dimension;
        
List<WebElement> elementsList = driver.findElements(By.xpath("//some/xpath"));
        
for (WebElement element : elementsList)
{
    point = element.getLocation();
    dimension = element.getSize();
    System.out.println("Element name: " + element.getTagName());
    System.out.println("Element size: " + dimension.height + "x" + dimension.width);
    System.out.println("Element location: " + point.x + ":" + point.y);
}

getLocation() および getSize() を呼び出すたびに、(値を取得するために) js が実行され、時間がかかることに注意してください。そのため、要素ごとに 1 回だけ呼び出す必要があります。element.getSize().height + "x" + element.getSize().width などは使用しないでください。上記の例に比べて 2 倍の時間がかかります。

Ruby では、上記のメソッドは element.location および element.size と呼ばれます。

于 2012-05-16T16:35:37.970 に答える
1

主な目的が UI の変更をテストすることであり、セレンが絶対的な要件ではない場合は、BBC Wraith を使用できます - https://github.com/BBC-News/wraithセットアップと使用が非常に簡単です。

于 2014-07-16T14:08:56.070 に答える
0

これは複数の方法で達成できます

1. スクリーンショットの比較: Selenium Webdriver を使用して、指定された Web サイトの URL に移動し、ブラウザーをさまざまなサイズに変更して、スクリーンショットを比較します。両方のスクリーンショットが同じ場合、指定された Web サイトは応答していません。この方法は良くありません。その Web サイトのスクリーンショットを撮っているときに、その Web サイトにスライドショーが存在する場合、その Web サイトに存在するスライドショーの画像が変更される可能性があり、異なるスクリーンショットが取得されるため、スクリーンショットを比較すると次のような結果が得られるためです。両方のスクリーンショットが異なり、指定されたサイトがレスポンシブであるため、応答が得られる場合があります

2. ドキュメントの幅: Selenium Webdriver を使用して、指定された Web サイトの URL に移動し、ブラウザをモバイル デバイスのサイズに変更し、javascript を実行してドキュメントの幅を取得します。幅がモバイル デバイスの最大幅よりも小さい場合、指定された Web サイトはレスポンシブであると見なすことができます。

3. スクリーンショットの幅 : Selenium webdriver を使用して、指定された Web サイトの URL に移動し、ブラウザーをモバイル デバイスのサイズに変更して、スクリーンショットを撮り、スクリーンショット イメージの幅を取得します。幅がモバイル デバイスの最大幅よりも小さい場合、その Web サイトはレスポンシブであると見なすことができます。このアプローチで複数のサイトをテストし、期待される結果を得ました 指定されたサイトが応答しているかどうかを確認する手順.

コーディングの詳細については、http: //jagadeeshmanne.blogspot.in/2014/03/checking-website-is-responsive-or-not.htmlを参照してください。

于 2014-03-07T05:09:20.657 に答える