2017-10-31 10 views
0

私は与えられたページで&未使用のcssを使用する簡単なJavaクラスの作成に取り組んでいます。chrome devプロトコルを使用してCSSカバレッジデータを取得するにはどうすればよいですか?

public class coverage { 

    static String str; 

    public static void main(String[] args) throws JSONException { 

     String url = "https://www.amazon.com"; 
     Launcher launcher = new Launcher(); 
     try (SessionFactory factory = launcher.launch(); 
       Session session = factory.create()) { 
      Command command = session.getCommand(); 
      DOM dom = command.getDOM(); 
      CSS css = command.getCSS(); 
      session.navigate(url); 
      dom.enable(); 
      css.enable(); 
      HashMap<String, List<String>> hm = new HashMap<String, List<String>>(); 
      HashMap<String, String> hmUsedCSS = new HashMap<String, String>(); 
      css.startRuleUsageTracking(); 
      List<RuleUsage> list = css.stopRuleUsageTracking(); 
      for (RuleUsage coverage : list) { 
       if (!hm.containsKey(coverage.getStyleSheetId())) { 
        hm.put(coverage.getStyleSheetId(),        
        css.collectClassNames(coverage.getStyleSheetId())); 
       } 
       if (!coverage.isUsed()) { 
        String existingContent = hmUsedCSS.get(coverage 
          .getStyleSheetId()); 
        String extraContent = css.getStyleSheetText(coverage 
          .getStyleSheetId()); 
        hmUsedCSS.put(coverage.getStyleSheetId(), 
          existingContent == null ? extraContent 
            : existingContent + extraContent); 
       } 
      } 

      for (String name : hm.keySet()) { 
       List<String> value = hm.get(name); 
       System.out.println("Total " + name + "=>" + value); 

      } 

      for (String name : hmUsedCSS.keySet()) { 
       List<String> value = hm.get(name); 
       System.out.println("Used CSS " + name + "=>" + value); 

      } 
     } 
    } 

} 

公式documentationを1として、「stopRuleUsageTrackingは」特定のCSSがRuleUsageで「使用」ブール値を設定することで、使用されているか否かを教えますが、それは使用」でページ上で利用可能なすべてのCSSを返します私が使用したCSSの位置を教えてくれるので、答えがstartoffset &のendoffset値にあることが分かりました。しかし、これらの値を意味のある結果に変換する方法はわかりません。&未使用CSS?誰かがここで私を助けることができますか?私は質問で指摘したよう

答えて

0

は、キーがvalues.Iが同じ&を行うためのロジックを記述することができました開始オフセット&終了ごとにカバレッジデータをフェッチするために使用した&未使用のCSSの必要なリストを得ました。

関連する問題