3

私は、さまざまな Web ページをクロールし、Selenium を使用していくつかのテストを行うプログラムを作成しています。ここで、これらの Web サイトでどの CSS フレームワークが使用されているかを調べて、統計を取得したいと考えています。現在、特定のフレームワークの名前を持つページにリンクされている .css ファイルがあるかどうか、FireFox Webdriver で確認します。 Iterator<WebElement> divWebElementIteratorCSS = webDriver.findElements(By.xpath("//link[@rel='stylesheet']")).iterator();

次に、見つかった .css ファイルの名前に、確認したい CSS フレームワークのいずれかの名前が含まれているかどうかを確認します。

if ( src.contains( frameWorkName ) && cssFrameWorks.get( frameWorkName ) == false ) {
    result.addAttribute("Framework", "STRING", frameWorkName);
    result.setPercent( 100 );
    result.setSuccessful( true );
    cssFrameWorks.put( frameWorkName, true );
}

Hashmap frameWorkName には、関心のあるすべてのフレームワークの名前が含まれています。

今私の問題: サイトの管理者がフレームワークの .css ファイルの名前を変更した場合、私のテストは機能しません! .css の名前が異なる場合でも機能する、これを確認する安全な方法はありますか?

4

2 に答える 2

2

Web サイトで使用されている CSS (または JavaScript) フレームワークを特定する信頼できる方法を知りません。

運が良ければ、管理者はグローバル URL ( jQuery によって提供される CDN リンクなど) を使用します。

人々がファイルの名前を変更し始めたら、CSS ファイルをダウンロードして指紋を付ける (チェックサムを作成する) ことを試みることができます。

もちろん、人々がそれらのファイルを変更すると、それは失敗します。これは自動的に行われます。wro4jは、すべての JavaScript および CSS リソースをそれぞれ 1 つの大きなファイルに自動的にコンパイルするフレームワークです。

また、なぜこの情報が必要なのか少し心配です。どのフレームワーク (およびどのバージョン) が使用されているかを把握しようとする代わりに、テストに影響を与える可能性のある適用されている実際の CSS スタイルを探します。

于 2013-10-14T07:39:52.677 に答える