ํ ์คํธ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์คํ์ํฌ ๋, ๋ณดํต์ ์๋์ผ๋ก ์คํํ ํ, quit() ๋ฅผ ์ฌ์ฉํ์ฌ driver๋ฅผ ์ข ๋ฃํ๋๋ก ์ค๊ณํ๋ค. (์ด๋ ๊ฒ ํ์ง ์์ผ๋ฉด ์คํฌ๋ฆฝํธ ์คํ์ ๋๋ด๊ณ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋์ผ๋ก ์ข ๋ฃํด์ผ ํ๋ค.)
ํ ์คํธ๊ฐ ์คํจ๋ก ๋๋ ๊ฒฝ์ฐ์๋ ๋ง์ง๋ง ์๊ฐ์ ์ด๋ค ๋ถ๋ถ์ด ์ ๋์ํ์ง ์์์ ์คํจํ๋์ง ๊ถ๊ธํ ์ ์๋ค. ๊ทธ๋ด ๋๋ ์๋์ผ๋ก ํ๋ฉด์ ์บก์ฒํด ์ฃผ๋ ์คํฌ๋ฆฐ์ท ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ ํ์ผ๋ก ์ ์ฅํ ์ ์๋ค. ์คํฌ๋ฆฐ์ท ์บก์ฒ ๊ธฐ๋ฅ์ ์น์ฑ์ ๋ํ ํต์ ๋ฒ์๋ฅผ ๋ํ์ฃผ๋ ์น ๋๋ผ์ด๋ฒ์ ๋ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ด๋ค.
์คํฌ๋ฆฐ์ท ์บก์ฒ
์คํฌ๋ฆฐ์ท์ ํตํด ํ ์คํธ๊ฐ ์คํจํ ๋น์์ ์ํฉ์ ์ฝ๊ฒ ์ ์ ์๋ค.
์น๋๋ผ์ด๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ TakesScreenShot ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค. ์ด ์ธํฐํ์ด์ค๋ ๋ชจ๋ ์น๋๋ผ์ด๋ฒ ๊ตฌํ์ฒด์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
์คํฌ๋ฆฐ์ท ์บก์ณ ๊ธฐ๋ฅ์ ์ฌ์ฉ์๊ฐ ๊ธฐ๋ฅ์ on/off ํ ์ ์๋ ์ฝ๊ธฐ ์ ์ฉ ์ค์ ์ด๋ค. ๋ํดํธ๋ ํ์ฑํ ์ํ์ด๋ค.
getScreenshotAs()
TakesScreenshotAs ์ธํฐํ์ด์ค์ ๋ฉ์๋ ์ค ํ๋์ธ getScreenshotAs() ๋ฉ์๋์ API๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
public X getScreenshotAs( OutputType target )
OutputType์ ์น๋๋ผ์ด๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ธํฐํ์ด์ค ์ค ํ๋์ด๋ค.
์น๋๋ผ์ด๋ฒ๋ 3๊ฐ์ง ํฌ๋งท์ผ๋ก ์คํฌ๋ฆฐ์ท์ ์บก์ณํ๋ค.
- BASE64, BYTES, FILE
FILE ํฌ๋งท์ ์ ํํ๋ฉด ์บก์ณ ์ด๋ฏธ์ง๊ฐ png ํ์ผ๋ก ์์ฑ๋๋ค๊ฐ JVM์ด ์ข ๋ฃํ๋ฉด ์ญ์ ๋๋ค. ํ ์คํธ ์ดํ์๋ ์คํฌ๋ฆฐ์ท ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ์ผ์ ์์ ํ ๊ณณ์ ๋ณต์ฌํด์ผ ํ๋ค.
์คํฌ๋ฆฐ์ท์ ๊ฒฐ๊ณผ๋ ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ ๋ค์ ์ค ํ๋๊ฐ ๋๋ค.
- ์ ์ฒด ํ์ด์ง
- ํ์ฌ ๋ณด์ด๋ ์๋์ฐ
- ํ๋ ์์์ ๋ณด์ด๋ ๋ถ๋ถ
- ๋ธ๋ผ์ฐ์ ๋ฅผ ํฌํจํ ์ ์ฒด ๋ชจ๋ํฐ ํ๋ฉด
ํ์ด์ดํญ์ค ๋๋ผ์ด๋ฒ์์ getScreenshotAs()๋ ํ์ด์ง ์ ์ฒด๋ฅผ ์บก์ณํ์ง๋ง, ํฌ๋กฌ ๋๋ผ์ด๋ฒ๋ ํ์ฌ ํ๋ ์์์ ๋ณด์ด๋ ์์ญ๋ง ์บก์ณํ๋ค.
์นํ์ด์ง ์คํฌ๋ฆฐ์ท์ ์บก์ณํ์ฌ ์ด๋ฏธ์ง๋ฅผ ํ์ผ๋ก ์ ์ฅํ๋ ์์ ๋ฅผ ์์ฑํด ๋ณด์. target ํด๋์์ ์ ์ฅํ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์๋ค.
System.setProperty("webdriver.chrome.driver", "./src/test/resources/drivers/chromedriver");
driver = new ChromeDriver();
driver.get("http://www.naver.com/");
File scrFile = ( (TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("./target/screenshot.png"));
์๋์ ๊ฐ์ด png ์ด๋ฏธ์ง ํ์ผ์ด ์์ฑ๋๋ค.
ํด๋น ๊ธฐ๋ฅ์ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋, ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค.์๋ฅผ ๋ค๋ฉด, ํ ์คํธ ์คํจ๋ฅผ ํ๋ ๊ฒฝ์ฐ ์คํจ ์ํฉ์ ํ๋ฉด์ ์บก์ณํด์ ์ ์ฅํ๊ฑฐ๋, testcase์ ๊ฒฐ๊ณผ๊ฐ(comment)์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ฌํ ์ ์๋ค.
ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ธ
Selenium ํค๋๋ฆฌ์ค ๋ชจ๋ ์ฌ์ฉ๋ฒ Headless Mode
์๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํด ๋ณธ ์ฌ๋์ ์๊ฒ ์ง๋ง, ํ ๋ฒ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ฉด ์ค์ ์น ๋๋ผ์ด๋ฒ๊ฐ ์คํ๋๋ฉด์ ํ ์คํธ๋ฅผ ์คํํ๋ค. ํ์ง๋ง, ๋งค๋ฒ ์ด ํ ์คํธ๋ฅผ ์ง์ ํ์ธํด์ผ ํ๋ ๊ฒ์ ์๋
dev-yujin.tistory.com