2017-12-13 8 views
0

Seleniumを介してウェブページからサブ画像を抽出する際に問題はありません。最初にページ全体のスクリーンショットを取得し、要素座標を使用してサブイメージを抽出します。固定要素配置による要素のキャプチャ

Dimension elementDimension = webElement.getSize(); 
Point elementPoint = webElement.getLocation(); 

BufferedImage bufferedImageScreenshot = takeScreenshotByAShotRtrnBufferedImage(driver); 



BufferedImage bufferedSubImage = bufferedImageScreenshot.getSubimage(elementPoint.x, elementPoint.y, 
       elementDimension.width, elementDimension.height); 

これは完全に毎回作品 - 私はいくつかのウェブサイトは、あなたがウェブページを表示する(またはスクロールダウン)としてあなたと一緒にスクロールする特定の要素を持っていることに気づいた点が異なります。これが起こると、私が望む要素は、スクロールするときにあなたと共に移動する要素によって覆われます。あなたがhttps://www.amazon.com/gp/product/B00V7T1YRQに移動し、サブ要素を抽出しようとした場合

たとえば、:ウェブページから.//*[@id='aplus']を、結果は次のとおりです。

http://imagizer.imageshack.us/a/img922/7974/VYFPUU.png

代わりの期待される結果:

http://imageshack.com/a/img922/9517/AB8O2Q.png

赤で要素がぼかされることなく目的の画像を取得するにはどうすればよいですか?

答えて

0

その浮動要素を削除することができます。これはid = miniATF_feature_divです。下のjavascriptを実行すると、リロードするまでページから削除されます。

document.getElementById('miniATF_feature_div').remove() 

あなたがそれを行う方法がわからない場合は、チュートリアルや質問の多くは、いくつかのサンプルコードでSOにここにあります。

サイドノート: IDを参照しているときにXPathを使用する理由はありません。 .//*[@id='aplus']By.id("aplus")を使用してください...読みやすく、理解しやすく、よりよくサポートされ、より高速です。

+0

ダウンワードの説明? – JeffC

+0

私はあなたに投票しました。なぜ誰かが投票したのか分からない。それは正解です。ありがとう! –

関連する問題