あなたはキャッシュからコンテンツを取得するためにforce-cache
でfetch
を使用することができます。次に、応答からarrayBufferをダイジェストします。残念ながら、MD5は古すぎ、ブラウザはこれ以上サポートしていません。 Crypto hereについてさらに詳しくをご覧ください。 SHA-1、SHA-256、SHA-384、およびSHA-512を選択できます。下のSHA-256を解説する例を参照してください。
public void getImageSHA256(){
driver.get("https://www.blognone.com/");
WebElement img = driver.findElement(By.cssSelector("img"));
String imgUrl = img.getAttribute("src").trim();
String script = "function hex(buffer) { var hexCodes = []; var view = new DataView(buffer); for (var i = 0; i < view.byteLength; i += 4) { var value = view.getUint32(i); var stringValue = value.toString(16); var padding = '00000000'; var paddedValue = (padding + stringValue).slice(-padding.length); hexCodes.push(paddedValue); } return hexCodes.join(\"\");}" +
"var callback = arguments[arguments.length - 1];" +
"fetch(arguments[0],{cache:'force-cache'}).then((response)=> {" +
"return response.arrayBuffer(); }).then((buffer)=>{" +
" return crypto.subtle.digest('SHA-256', buffer); }).then((hashArray)=>{" +
" callback(hex(hashArray));"+
"});";
driver.manage().timeouts().setScriptTimeout(15, TimeUnit.SECONDS);
Object response = ((JavascriptExecutor) driver).executeAsyncScript(script, imgUrl);
System.out.println(response);
}
下のスクリーンショットは、私のコードのSHA-256とオンラインツールのSHA-256の比較を示しています。
** image要素**のMD5をDOMにしますか?または、イメージファイルのMD5が必要ですか? – Buaban
イメージファイルのMD5が必要です –
ファイルをダウンロードするためにJavaを使用し、次にMD5のコンテンツをダウンロードする必要があると思います。 – Buaban