๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SQA/Automation

Selenium ํ—ค๋“œ๋ฆฌ์Šค ๋ชจ๋“œ ์‚ฌ์šฉ๋ฒ• Headless Mode

์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด ๋ณธ ์‚ฌ๋žŒ์€ ์•Œ๊ฒ ์ง€๋งŒ, ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์‹ค์ œ ์›น ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ๋งค๋ฒˆ ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์ง์ ‘ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ด ์›นํŽ˜์ด์ง€๋ฅผ ๋„์šฐ์ง€ ์•Š๊ณ  ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋•Œ ํ—ค๋“œ๋ฆฌ์Šค ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

headlessMode
headlessMode

 

ํ—ค๋“œ๋ฆฌ์Šค ๋ชจ๋“œ

์›น๋“œ๋ผ์ด๋ฒ„ ์ž๋™ํ™” ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์ƒ๋‹นํžˆ ์œ ์šฉํ•˜๋‹ค. ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉด์„œ๋„ UI๊ฐ€ ๋ณด์ด์ง€ ์•Š์•„ ๋น ๋ฅด๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. CI(์ง€์†์  ํ†ตํ•ฉ)ํ™˜๊ฒฝ์—์„œ ์œ ์šฉํ•˜๋‹ค.

๋‚˜์ค‘์— ํ…Œ์ŠคํŠธ ์ž๋™ ๋ฐฐํฌ๋ฅผ ์ ์šฉํ•  ๋•Œ๋Š” ํ—ค๋“œ๋ฆฌ์Šค ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋น ๋ฅผ ๊ฒƒ์ด๋‹ค.

 

 

Chrome ์—์„œ ํ—ค๋“œ๋ฆฌ์Šค ๋ชจ๋“œ ์‚ฌ์šฉ

ChromeOptions ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ setHeadless() ๋ฉ”์„œ๋“œ๋ฅผ true๋กœ ์„ค์ •ํ•˜๋ฉด ํ—ค๋“œ๋ฆฌ์Šค๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

@BeforeMethod
public void beforeMethod() {
	System.setProperty("webdriver.chrome.driver", "./src/test/resource/drivers/chromedriver");
	  
	ChromeOptions chromeOptions = new ChromeOptions();
	chromeOptions.setHeadless(true);
	  
	driver = new ChromeDriver(chromeOptions);
	  
	driver.get("http://www.naver.com/");
}