SQA/Automation (23) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ํฌ๋กฌ๋๋ผ์ด๋ฒ 115 ์ด์ ์ต์ stable ๋ฒ์ ๋ค์ด๋ก๋ 119 version ์ค๋๋ง์ ์๋ํ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ํฌ๋กฌ๋๋ผ์ด๋ฒ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ผ๋ ค ํ๋๋ฐ, 115 ์ด์ newer ๋ฒ์ ์ ๋ค์ด๋ก๋ ๋ฐ์ผ๋ ค๊ณ ํ๋ ํ์ด์ง๊ฐ ๋ญ๊ฐ ๋ฐ๋์๋ค. 115 ๋ฏธ๋ง ๋ฒ์ 115 ๋ฏธ๋ง ๋ฒ์ ์ ๊ทธ๋ฅ ๊ธฐ์กด ๋ฐฉ๋ฒ๋๋ก ํฌ๋กฌ๋๋ผ์ด๋ฒ ํํ์ด์ง์์ ๋ค์ด๋ก๋ ๋ฐ์ผ๋ฉด ๋๋ค. ChromeDriver ํฌ๋กฌ๋๋ผ์ด๋ฒ ๋ค์ด๋ก๋ ๋ฒ์ ํ์ธ ๋ฐฉ๋ฒ ์น์๋ํ๋ฅผ ํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ๋๋ผ์ด๋ฒํ์ผ์ด ํ์ํ๋ค, ์์ฃผ ์ฌ์ฉํ๊ณ , ๋ง์ ์ฌ๋๋ค์ด ์ฌ์ฉํ๋ ํฌ๋กฌ๋๋ผ์ด๋ฒ๋ฅผ ๋ค์ด๋ก๋ํด๋ณด์๋ค. ํฌ๋กฌ๋๋ผ์ด๋ฒ๋ ํฌ๋กฌ์ ์ฌ๋์ด ์๋ ์ปดํจํฐ๊ฐ ์ ์ดํ ์ dev-yujin.tistory.com 115 ์ด์ newer ๋ฒ์ ์๋ก์ด ๋ฒ์ ์ ๋ฐ๊ณ ์, ํ์ด์ง ์ง์ ํ๋ Chrome ๋ฒ์ 115 ์ด์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Chrome for Testing ๊ฐ์ฉ์ฑ ๋์๋ณด๋๋ฅผ ์ฐธ์กฐํ์ญ์์ค.. Selenium ๋ง์ฐ์ค์์ ์๋ผ๊ธฐ Release ์ฌ์ฉ๋ฒ ์ ๋ฒ ํฌ์คํ ์์ clickAndHold ์ก์ ์ ์ํํด ๋ณด์๋๋ฐ, ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ ์ํ๋ฅผ ์ ์งํด ์ฃผ์์๋ค. ์ค๋์ ๋ง์ฐ์ค ํด๋ฆญ์ ์ค์งํ๋ release() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ณด์. release ( ) release ์ก์ ์ ๋ง์ฐ์ค์์ ์์ ๋ผ๊ณ ์๋ฆฌ๋จผํธ๋ฅผ ์ํ๋ ์์น์ ๋ด๋ ค๋์ ์ ์๋ ์ก์ ์ด๋ค. release ์ก์ ์ ์ ๋ฌ๋ฐ๋ ์ธ์๊ฐ ์๊ณ , Actions ํด๋์ค ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ค. ๋ค์ ์์ ๋ ์ํ๋ ํ์ด์ง์ ๋ด์ฉ ์ผ๋ถ๋ฅผ ๋๋๊ทธํ๋ ์์ ์ด๋ค. ์ฌ์ฉ์์ ์ก์ ๋น๋์ ๋ง์ง๋ง ๋ถ๋ถ์ release() ์ก์ ์ ์ฌ์ฉํ์ฌ, ํด๋ฆญํ๋ ๋ง์ฐ์ค์์ ์์ ๋ผ๋ ๋์์ ์ํํ ์ ์๋ค.@Test public void f() { //๋ฒ ํ ๋ฒค ๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ driver.get("https://terms.naver.com/entr.. Selenium ๋ง์ฐ์ค ๋๋๊ทธํ๊ธฐ clickAndHold ์ฌ์ฉ๋ฒ ์ด๋ฒ ํฌ์คํ ์์๋ ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ๊ณ , ์์ ๋ผ์ง ์๊ณ ํด๋ฆญํ๊ณ ์๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ์นํ์ด์ง ๋ฑ์ ๋ง์ฐ์ค๋ก ๋๋๊ทธํ๋ ์ฌ์ฉ์ ์ก์ ์ ์ํํ ๋ ์ฌ์ฉํ ์ ์๋ค. clickAndHold ( ) clickAndHold() ๋ฉ์๋๋ ๋ง์ฐ์ค๋ก ์๋ฆฌ๋จผํธ๋ฅผ ํด๋ฆญํ ํ ์์ ๋ผ์ง ์๊ณ ๋๋ฅด๊ณ ์๋ ๋์์ ์๋ฎฌ๋ ์ดํธํ๋ค. ๋๋๊ทธ์ค๋๋ ๋์์ ํ์ฌ ์น ์๋ฆฌ๋จผํธ ์์๋ฅผ ์ฎ๊ธธ ๋๋, ๋๋๊ทธํ์ฌ ํน์ ์์ญ์ ์ ํํ ๋๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ์์ ๋ฅผ ํตํด ์์๋ณด์. ๋๋๊ทธํ์ฌ ์ด๋ค ์ ๋ฌธ๊ธฐ์ฌ์ title์ ๋๋๊ทธํด ๋ธ๋ก์ ์ก์๋ณผ ๊ฒ์ด๋ค. clickAndHold()์ moveByOffset()์ ์ ์ ํ ์ฌ์ฉํ์ฌ, ๋ง์ฐ์ค๋ฅผ ๋๋ฅธ ์ํ์์ ์ด๋ํ์ฌ ๋๋๊ทธํ๋ ์ก์ ์ ์ํํด ๋ณผ ์ ์๋ค. moveByOffset() ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๊ด๋ จ ํฌ์คํธ.. Selenium ๋ง์ฐ์ค ์ด๋ํ๊ธฐ MoveByOffset ์ฌ์ฉ๋ฒ, Java ์ด์ ํฌ์คํ ์ ์ด์ด์, ์ ๋ ๋์์ ์ก์ API๋ฅผ ์ฌ์ฉํด์ ์ฌ์ฉ์ ์ก์ ์ ์ํํ๋ ๊ฒ์ ๊ณต๋ถํด ๋ณด๊ณ ์ ํ๋ค. ํด๋น ํฌ์คํ ์ Java ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ๋ง์ฐ์ค๋ฅผ ์ํ๋ ๊ณณ์ผ๋ก ์์ง์ด๋ ํจ์์ธ MoveByOffset() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด๋ณธ๋ค. MoveByOffset ( ) Actions ํด๋์ค์์ ์ฌ์ฉํ ์ ์๋ ๋ง์ฐ์ค ์ก์ ์ 8๊ฐ์ง๊ฐ ์๋ค. ์ค๋์ ๊ทธ ์ค ํ๋์ธ MoveByOffset() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด๋ณด์. MoveByOffset() ๋ฉ์๋๋ ์นํ์ด์ง์์ ์ํ๋ ์ง์ ์ผ๋ก ๋ง์ฐ์ค ์ปค์๋ฅผ ์ด๋ํ๋ค. x, y ๊ฑฐ๋ฆฌ ๊ฐ์ ์ธ์๋ก ์ค์ ๋ง์ฐ์ค ์ปค์๋ฅผ ์ด๋ํ๋ค. ํ์ฌ ๋ง์ฐ์ค ์์น์์ x, y ๋ฐฉํฅ์ผ๋ก ์ผ๋งํผ ์ด๋ํ ๊ฒ์ธ์ง ์ ๋ ๊ฒ์ด๋ค. ํ์ด์ง๋ฅผ ๋ก๋ํ์ ๋, ํฌ์ปค์ค ๊ฐ์ด ์๋ค๋ฉด (0,0)์ด .. ์ด์ 1 2 3 4 ยทยทยท 6 ๋ค์