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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(136)
Selenium ๋งˆ์šฐ์Šค ๋“œ๋ž˜๊ทธํ•˜๊ธฐ clickAndHold ์‚ฌ์šฉ๋ฒ• ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•˜๊ณ , ์†์„ ๋–ผ์ง€ ์•Š๊ณ  ํด๋ฆญํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. ์›นํŽ˜์ด์ง€ ๋“ฑ์„ ๋งˆ์šฐ์Šค๋กœ ๋“œ๋ž˜๊ทธํ•˜๋Š” ์‚ฌ์šฉ์ž ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. clickAndHold ( ) clickAndHold() ๋ฉ”์„œ๋“œ๋Š” ๋งˆ์šฐ์Šค๋กœ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํด๋ฆญํ•œ ํ›„ ์†์„ ๋–ผ์ง€ ์•Š๊ณ  ๋ˆ„๋ฅด๊ณ  ์žˆ๋Š” ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ดํŠธํ•œ๋‹ค. ๋“œ๋ž˜๊ทธ์•ค๋“œ๋ž ๋™์ž‘์„ ํ•˜์—ฌ ์›น ์—˜๋ฆฌ๋จผํŠธ ์š”์†Œ๋ฅผ ์˜ฎ๊ธธ ๋•Œ๋‚˜, ๋“œ๋ž˜๊ทธํ•˜์—ฌ ํŠน์ • ์˜์—ญ์„ ์„ ํƒํ•  ๋•Œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์ž. ๋“œ๋ž˜๊ทธํ•˜์—ฌ ์–ด๋–ค ์‹ ๋ฌธ๊ธฐ์‚ฌ์˜ title์„ ๋“œ๋ž˜๊ทธํ•ด ๋ธ”๋ก์„ ์žก์•„๋ณผ ๊ฒƒ์ด๋‹ค. clickAndHold()์™€ moveByOffset()์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ, ๋งˆ์šฐ์Šค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์—์„œ ์ด๋™ํ•˜์—ฌ ๋“œ๋ž˜๊ทธํ•˜๋Š” ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. moveByOffset() ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๊ด€๋ จ ํฌ์ŠคํŠธ..
๋„ค์ด๋ฒ„ํŽ˜์ด ์‚ผ์„ฑํŽ˜์ด ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋ฐ ํฌ์ธํŠธ ๋ฝ‘๊ธฐ , ๊ฐค๋Ÿญ์‹œ ์•„์ดํฐ ๊ฐค๋Ÿญ์‹œ ์‚ฌ์šฉ์ž๋ผ๋ฉด ์‚ผ์„ฑํŽ˜์ด๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ํŽ˜์ด ์•ฑ์ด ํƒ‘์žฌ๋œ ์‚ผ์„ฑํŽ˜์ด๋ฅผ ์“ฐ์‹ ๋‹ค๋ฉด ์›” ์ตœ๋Œ€ 50๋ฒˆ๊นŒ์ง€ ํฌ์ธํŠธ ๋ฝ‘๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์•ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฒฐ์ œ 1๊ฑด ๋‹น 2ํšŒ์”ฉ ํฌ์ธํŠธ ๋ฝ‘๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋„ค์ด๋ฒ„ํŽ˜์ด์˜ ์‚ผ์„ฑํŽ˜์ด ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋ฐ ํฌ์ธํŠธ ๋ฝ‘๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ํŽ˜์ด NAVER pay ๋„ค์ด๋ฒ„ํŽ˜์ด๋Š” ๋งŽ์€ ๋ถ„๋“ค์ด ์•Œ๊ณ  ๊ณ„์‹ค๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„์—์„œ ์‡ผํ•‘์„ ํ•  ๋•Œ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ, ์˜คํ”„๋ผ์ธ์—์„œ๋„ ํŽ˜์ด ์ˆ˜๋‹จ์˜ ์‚ฌ์šฉ์ฒ˜๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ์žˆ์ฃ . ์ฒด๊ฐ์ƒ์œผ๋กœ๋Š” ์•„์ง ์นด์นด์˜คํŽ˜์ด ์‚ฌ์šฉ์ฒ˜๊ฐ€ ๋” ๋งŽ์€ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๋„ค์ด๋ฒ„ํŽ˜์ด ์‚ฌ์šฉ์ฒ˜๋„ ์ ์  ๋Š˜์–ด๋‚˜๊ณ  ์žˆ์œผ๋‹ˆ ๋„ค์ด๋ฒ„ํŽ˜์ด์—๋„ ๊ด€์‹ฌ์„ ๊ฐ€์ ธ๋ณด์‹œ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ํŽ˜์ด ๋„ค์ด๋ฒ„ ID๋กœ ๊ฐ„ํŽธ๊ตฌ๋งค, ๋„ค์ด๋ฒ„ํŽ˜์ด m.pay.naver.com ๋„ค์ด๋ฒ„ํŽ˜์ด ์•ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ..
๋ฏธ๋ž˜์—์…‹์ฆ๊ถŒ ์•ฑ ๋‹ฌ๋Ÿฌ ์—”ํ™” ์™ธํ™” ํ™˜์ „ ๊ฑฐ๋ž˜ ๋ฐฉ๋ฒ• ์ตœ๊ทผ ์—”ํ™”์˜ ํ™˜์œจ์ด ๋–จ์–ด์ง€๋ฉด์„œ ์—”ํ™” ๋งค์ˆ˜๋ฅผ ํ†ตํ•œ ํ™˜ํ…Œํฌ๋ฅผ ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŽ์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ๋ฏธ๋ž˜์—์…‹์ฆ๊ถŒ ์•ฑ์„ ํ†ตํ•ด ๋ชจ๋ฐ”์ผ ์—”ํ™” ํ™˜์ „ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์™”์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์—์…‹์ฆ๊ถŒ ์•ฑ ํ™˜์ „ ์ตœ๊ทผ ๊ณต๋ชจ์ฃผ, ETF ๋“ฑ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ, ๋ฏธ๋ž˜์—์…‹ ์ฆ๊ถŒ ๊ณ„์ขŒ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์™• ์ƒ์„ฑํ•œ ๊น€์— ์—”ํ™” ํ™˜ํ…Œํฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์•„์„œ ํ™˜์ „์„ ์ง„ํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ํ™˜์ „์—๋Š” '์ •๊ทœํ™˜์ „'๊ณผ '์‹œ๊ฐ„์™ธํ™˜์ „'์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ํ™˜์ „์˜ ์ฐจ์ด๋Š” ์ฆ๊ถŒ์‚ฌ ์˜์—…์ผ(์˜์—…์‹œ๊ฐ„) ๋‚ด์— ํ™˜์ „ํ•˜๋ƒ, ๊ทธ ์™ธ์˜ ์‹œ๊ฐ„์— ํ™˜์ „ํ•˜๋ƒ์˜ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ํ™˜์ „์˜ ์ƒ์„ธํ•œ ์ฐจ์ด๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์—์…‹์ฆ๊ถŒ ์™ธํ™” ๊ฑฐ๋ž˜ ๋ฐฉ๋ฒ• ์ด์ œ ๋ฏธ๋ž˜์—์…‹์ฆ๊ถŒ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ํ†ตํ•ด ํ™˜์ „ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ฑ ๋กœ๊ทธ์ธ์„ ํ•˜์‹  ํ›„ ๋”ฐ๋ผ..
Selenium ๋งˆ์šฐ์Šค ์ด๋™ํ•˜๊ธฐ MoveByOffset ์‚ฌ์šฉ๋ฒ•, Java ์ด์ „ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ, ์…€๋ ˆ๋‹ˆ์›€์˜ ์•ก์…˜ API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‚ฌ์šฉ์ž ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๊ณต๋ถ€ํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŒ…์€ Java ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ–ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋งˆ์šฐ์Šค๋ฅผ ์›ํ•˜๋Š” ๊ณณ์œผ๋กœ ์›€์ง์ด๋Š” ํ•จ์ˆ˜์ธ MoveByOffset() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋ณธ๋‹ค. MoveByOffset ( ) Actions ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์šฐ์Šค ์•ก์…˜์€ 8๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์˜ค๋Š˜์€ ๊ทธ ์ค‘ ํ•˜๋‚˜์ธ MoveByOffset() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž. MoveByOffset() ๋ฉ”์„œ๋“œ๋Š” ์›นํŽ˜์ด์ง€์—์„œ ์›ํ•˜๋Š” ์ง€์ ์œผ๋กœ ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ์ด๋™ํ•œ๋‹ค. x, y ๊ฑฐ๋ฆฌ ๊ฐ’์„ ์ธ์ž๋กœ ์ค˜์„œ ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ์ด๋™ํ•œ๋‹ค. ํ˜„์žฌ ๋งˆ์šฐ์Šค ์œ„์น˜์—์„œ x, y ๋ฐฉํ–ฅ์œผ๋กœ ์–ผ๋งŒํผ ์ด๋™ํ•  ๊ฒƒ์ธ์ง€ ์ ๋Š” ๊ฒƒ์ด๋‹ค. ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ–ˆ์„ ๋•Œ, ํฌ์ปค์Šค ๊ฐ’์ด ์—†๋‹ค๋ฉด (0,0)์ด ..