ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•
์…€๋ ˆ๋‹ˆ์›€์€ ์›น ํฌ๋กค๋ง์„ ํ•˜๊ฑฐ๋‚˜, ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์“ฐ์ด๊ณค ํ•œ๋‹ค. ๋˜ํ•œ, ์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ์›น์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํŒŒ์ด์ฌ์œผ๋กœ ์…€๋ ˆ๋‹ˆ์›€์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

์„ค์น˜

1. selenium

 ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ pip๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค์น˜ ํ™˜๊ฒฝ์€ Pycharm์„ ์‚ฌ์šฉํ•˜๊ณ  venv๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•œ๋‹ค.

 Pycharm ํ•˜๋‹จ์— Terminal์„ ํด๋ฆญ ํ•œ ํ›„์—, pip install selenium์„ ์ž…๋ ฅํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. web-driver

 ๊ฐ์ž ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์›น์— ๋”ฐ๋ผ, ์›น ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ ํด๋” ๋‚ด์— ์œ„์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค. ๋˜ํ•œ ์›น ๋“œ๋ผ์ด๋ฒ„์™€ ํ˜„์žฌ ๋กœ์ปฌ์— ์‚ฌ์šฉ์ค‘์ธ ์›น์˜ ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

 ํฌ๋กฌ์˜ ๊ฒฝ์šฐ ์šฐ์ธก ์ƒ๋‹จ์˜ ์  ์„ธ๊ฐœ ๋ฒ„ํŠผ์„ ํด๋ฆญ ํ›„, ๋„์›€๋ง โ†’ Chrome ์ •๋ณด๋ฅผ ํ†ตํ•ด ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ ์ค‘์ธ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฒ„์ „์„ ์•Œ์•˜๋‹ค๋ฉด, ์ผ์น˜ํ•˜๋Š” ๋ฒ„์ „์˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋‹ค์šดํ•˜๋ฉด ๋œ๋‹ค.

 ๋‹ค์šด์ด ๋œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ”„๋กœ์ ํŠธ ํด๋” ๋‚ด์— ์œ„์น˜์‹œํ‚ค๋ฉด ๋œ๋‹ค. ๋ณดํ†ต Pycharm ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์œˆ๋„์šฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ, C:\Users\[UserName]\PychamProcjests\[ProjectName]์ด ๊ฒฝ๋กœ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๊ฒฝ๋กœ์— ์›น ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์œ„์น˜์‹œํ‚ค๋ฉด ๋œ๋‹ค.

 

3. ์„ค์น˜๋œ ํฌ๋กฌ ํ™œ์šฉํ•˜๊ธฐ

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

 ์–ธ์ œ๋ถ€ํ„ฐ ์ƒ๊ฒผ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์œ„์™€ ๊ฐ™์ด webdriver_manager๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ web-driver๋ฅผ ๋‹ค์šด๋ฐ›์ง€ ์•Š์•„๋„ ํ˜ธ์ŠคํŠธ์ƒ์— ์„ค์น˜๋œ ํฌ๋กฌ์„ ํ™œ์šฉํ•˜์—ฌ ์…€๋ ˆ๋‹ˆ์›€์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. built-in ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๊ธฐ์—, pip install webdriver_manager๋ฅผ ํ†ตํ•ด ๋ณ„๋„๋กœ ์„ค์น˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

 

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager


class DefaultTest:
    def __init__(self):
        self.driver = webdriver.Chrome()
        # webdriver_manager๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒฝ์šฐ.
		# self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
        
    def teardown(self):
        self.driver.quit()

    def auto_test(self):
        self.driver.get("https://www.google.com/")
        self.driver.set_window_size(974, 1040)
        self.driver.find_element(By.NAME, "q").send_keys("test")
        self.driver.find_element(By.NAME, "q").send_keys(Keys.ENTER)


if __name__ == '__main__':
    test = DefaultTest()
    test.auto_test()

 ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์˜€์„ ๋•Œ, ๊ตฌ๊ธ€์— test๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ด๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€