この URLを開いて、 Ashot ライブラリを使用して下の画像のような [閲覧を続ける] ボタンのスクリーンショットを撮ろうとしています。
pom.xml に対する私の依存関係は次のとおりです。
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.ashot</groupId>
<artifactId>ashot</artifactId>
<version>1.5.4</version>
</dependency>
</dependencies>
そして、ここに私のコードがあります:
public class Main {
public static void main(String[] args) throws InterruptedException, IOException {
System.setProperty("webdriver.chrome.driver", "C:\\selenium-driver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://www.immoweb.be/en/search/house/for-sale?countries=BE&page=1&orderBy=relevance";
driver.get(baseUrl);
Thread.sleep(3000);
WebElement element = driver.findElement(By.xpath("//*[@id='uc-btn-accept-banner']"));
Screenshot screenshot = new AShot().coordsProvider(new WebDriverCoordsProvider())
.takeScreenshot(driver, element);
File actualFile = new File("C:\\baseImage\\dashboardActual.png");
ImageIO.write(screenshot.getImage(), "png", actualFile);
driver.close();
}
}
しかし、コードを実行すると、撮影したスクリーンショットが正しくありません。
これが私のスクリーンショットです:
更新:この質問を読んだ後、私はまた役に立たなかったshootingStartegyを追加しました:
Screenshot screenshot =
new AShot()
.shootingStrategy(ShootingStrategies.viewportPasting(100))
.coordsProvider(new WebDriverCoordsProvider())
.takeScreenshot(driver, element);