[Selenium] iframe ์ „ํ™˜ํ•˜๊ธฐ

Selenium์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ€๋” ํ™”๋ฉด์— ๋ณด์ด๋Š” ์—˜๋ ˆ๋ฉ˜ํŠธ๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 
์ด๋Ÿด ๋•Œ๋Š” ๋ณดํ†ต iframe์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค

๐Ÿค” iframe?

  • iframe์ด๋ž€ inline frame์˜ ์•ฝ์ž๋กœ ์‰ฝ๊ฒŒ ๋งํ•ด ํŽ˜์ด์ง€ ์•ˆ์˜ ํŽ˜์ด์ง€์ด๋‹ค.

๋จผ์ € ์˜ˆ์‹œ๋ฅผ ํ™•์ธํ•ด๋ณด์ž 

ํ™ˆํŽ˜์ด์ง€ : https://www.mangoplate.com/

์‚ฌ์ง„์ฒ˜๋Ÿผ ์ผ๋‹จ iframe ํƒœ๊ทธ์— ์žˆ๋Š”์ง€ ํ™•์ธ์„ ํ•œ๋‹ค. ํ™•์ธ์ด ๋˜์—ˆ๋‹ค๋ฉด ์ด์ œ๋ถ€ํ„ฐ iframe ์ „ํ™˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.


 โ–ถ๏ธŽ iframe ์ „ํ™˜ํ•˜๊ธฐ

#iframe ์š”์†Œ๋กœ ๋ณ€๊ฒฝ 
driver.switch_to.frame("iframe_name_or_id")

#iframe ์ „ํ™˜์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ํ”„๋ ˆ์ž„ ์•ˆ์— ์žˆ๋Š” ์š”์†Œ๋“ค์„ ์ฐพ์•„ ์ง„ํ–‰์„ ํ•˜๋ฉด ๋œ๋‹ค.
#์˜ˆ์‹œ
driver.find_element_by_id("element_id").click()

 

 โ–ถ๏ธŽ iframe ํƒœ๊ทธ ๋ฐ–์œผ๋กœ ๋‚˜์˜ค๊ธฐ 

  • iframe์„ ํ•œ๋ฒˆ ์ด๋™ํ–ˆ์œผ๋ฉด ๊ทธ ํ”„๋ ˆ์ž„ ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์ด ์žˆ์ง€ ์•Š์€ ์ด์ƒ ์ผ๋‹จ ๋””ํดํŠธ๋กœ ๋น ์ ธ๋‚˜์˜จ ํ›„์— ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์œผ๋กœ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค.
driver.switch_to.default_content() #๋ฉ”์ธํ”„๋ ˆ์ž„์œผ๋กœ ์ด๋™