BAEL-4024 - Taking Screenshots with Selenium WebDriver
This commit is contained in:
		
							parent
							
								
									a256b723c9
								
							
						
					
					
						commit
						a97a87735a
					
				| @ -41,6 +41,11 @@ | |||||||
|             <artifactId>hamcrest-all</artifactId> |             <artifactId>hamcrest-all</artifactId> | ||||||
|             <version>${hamcrest-all.version}</version> |             <version>${hamcrest-all.version}</version> | ||||||
|         </dependency> |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>ru.yandex.qatools.ashot</groupId> | ||||||
|  |             <artifactId>ashot</artifactId> | ||||||
|  |             <version>${ashot.version}</version> | ||||||
|  |         </dependency> | ||||||
|     </dependencies> |     </dependencies> | ||||||
| 
 | 
 | ||||||
|     <build> |     <build> | ||||||
| @ -59,6 +64,7 @@ | |||||||
|     <properties> |     <properties> | ||||||
|         <testng.version>6.10</testng.version> |         <testng.version>6.10</testng.version> | ||||||
|         <selenium-java.version>3.4.0</selenium-java.version> |         <selenium-java.version>3.4.0</selenium-java.version> | ||||||
|  |         <ashot.version>1.5.4</ashot.version> | ||||||
|     </properties> |     </properties> | ||||||
| 
 | 
 | ||||||
| </project> | </project> | ||||||
|  | |||||||
| @ -0,0 +1,85 @@ | |||||||
|  | package com.baeldung.selenium.screenshot; | ||||||
|  | 
 | ||||||
|  | import static org.junit.Assert.assertTrue; | ||||||
|  | 
 | ||||||
|  | import java.io.File; | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.util.concurrent.TimeUnit; | ||||||
|  | 
 | ||||||
|  | import javax.imageio.ImageIO; | ||||||
|  | 
 | ||||||
|  | import org.apache.commons.io.FileUtils; | ||||||
|  | import org.junit.AfterClass; | ||||||
|  | import org.junit.BeforeClass; | ||||||
|  | import org.junit.Test; | ||||||
|  | import org.openqa.selenium.By; | ||||||
|  | import org.openqa.selenium.Capabilities; | ||||||
|  | import org.openqa.selenium.OutputType; | ||||||
|  | import org.openqa.selenium.TakesScreenshot; | ||||||
|  | import org.openqa.selenium.WebElement; | ||||||
|  | import org.openqa.selenium.chrome.ChromeDriver; | ||||||
|  | import org.openqa.selenium.remote.DesiredCapabilities; | ||||||
|  | 
 | ||||||
|  | import ru.yandex.qatools.ashot.AShot; | ||||||
|  | import ru.yandex.qatools.ashot.Screenshot; | ||||||
|  | import ru.yandex.qatools.ashot.coordinates.WebDriverCoordsProvider; | ||||||
|  | import ru.yandex.qatools.ashot.shooting.ShootingStrategies; | ||||||
|  | 
 | ||||||
|  | public class TakeScreenShotSeleniumLiveTest { | ||||||
|  | 
 | ||||||
|  |     private static ChromeDriver driver; | ||||||
|  | 
 | ||||||
|  |     @BeforeClass | ||||||
|  |     public static void setUp() { | ||||||
|  |         System.setProperty("webdriver.chrome.driver", resolveResourcePath("chromedriver.mac")); | ||||||
|  | 
 | ||||||
|  |         Capabilities capabilities = DesiredCapabilities.chrome(); | ||||||
|  |         driver = new ChromeDriver(capabilities); | ||||||
|  |         driver.manage() | ||||||
|  |             .timeouts() | ||||||
|  |             .implicitlyWait(5, TimeUnit.SECONDS); | ||||||
|  | 
 | ||||||
|  |         driver.get("http://www.google.com/"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @AfterClass | ||||||
|  |     public static void tearDown() throws IOException { | ||||||
|  |         driver.close(); | ||||||
|  | 
 | ||||||
|  |         System.clearProperty("webdriver.chrome.driver"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void whenGoogleIsLoaded_thenCaptureScreenshot() throws IOException { | ||||||
|  |         takeScreenshot(resolveTestResourcePath("google-home.png")); | ||||||
|  | 
 | ||||||
|  |         assertTrue(new File(resolveTestResourcePath("google-home.png")).exists()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void whenGoogleIsLoaded_thenCaptureLogo() throws IOException { | ||||||
|  |         WebElement logo = driver.findElement(By.id("hplogo")); | ||||||
|  | 
 | ||||||
|  |         Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)) | ||||||
|  |             .coordsProvider(new WebDriverCoordsProvider()) | ||||||
|  |             .takeScreenshot(driver, logo); | ||||||
|  | 
 | ||||||
|  |         ImageIO.write(screenshot.getImage(), "jpg", new File(resolveTestResourcePath("google-logo.png"))); | ||||||
|  |         assertTrue(new File(resolveTestResourcePath("google-logo.png")).exists()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void takeScreenshot(String pathname) throws IOException { | ||||||
|  |         File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); | ||||||
|  |         FileUtils.copyFile(src, new File(pathname)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static String resolveResourcePath(String filename) { | ||||||
|  |         File file = new File("src/main/resources/" + filename); | ||||||
|  |         return file.getAbsolutePath(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static String resolveTestResourcePath(String filename) { | ||||||
|  |         File file = new File("src/test/resources/" + filename); | ||||||
|  |         return file.getAbsolutePath(); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user