나는 주어진 페이지에 & 사용하지 않은 CSS를 사용하는 간단한 자바 클래스를 만드는 중입니다.Chrome Dev 프로토콜을 사용하여 CSS Coverage 데이터를 가져 오는 방법은 무엇입니까?
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 당으로, 'stopRuleUsageTracking은'특정 CSS가 RuleUsage에서 '사용'부울을 설정하여 사용 여부되고 있는지 여부를 알려 것이다지만 사용 '에 해당 페이지에서 제공하는 모든 CSS를 반환 'true로 설정합니다. 우리는 사용 된 CSS의 위치를 알려주므로 beginoffset & endoffset 값에 해답이 있다는 것을 알아 냈습니다. 그러나이 값을 의미있는 결과로 변환하는 방법을 모르겠습니다. 사용되지 않은 CSS는 사용하지 않았습니까? 누군가 나를 도와 줄 수 있습니까? 내가 질문에서 지적한 바와 같이