ํฐ์คํ ๋ฆฌ ๋ทฐ
Selenium: Python์ผ๋ก ์์ํ๊ธฐ
dirmathfl 2020. 12. 18. 18:02์ ๋ ๋์์ ์น ํฌ๋กค๋ง์ ํ๊ฑฐ๋, ์์ ์ ์๋ํํ๊ธฐ ์ํด ์์ฃผ ์ฐ์ด๊ณค ํ๋ค. ๋ํ, ์ด ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ตฌํํ ์น์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์๋์ผ๋ก ์คํ ๊ฐ๋ฅํ๋๋ก ๋ง๋ค ์ ์๋ค. ์ด๋ฅผ ์ํด ํ์ด์ฌ์ผ๋ก ์ ๋ ๋์์ ์ฌ์ฉํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
์ค์น
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๋ผ๋ ํค์๋๋ฅผ ๊ฒ์ํ๋ค๋ฉด ์ ์์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ์ด๋ค.
'๐ต๏ธโโ๏ธ ์ฐ๋ฌผ ๋ฐ์ ๊ฐ๊ตฌ๋ฆฌ > Selenium' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Selenium : 'ํน์ ํ๋ก๊ทธ๋จ'์(๋ฅผ) ์ฌ์๊ฒ ์ต๋๊น? (0) | 2022.01.11 |
---|---|
Selenium: webdriver_manager ํ์ฉํ๊ธฐ (0) | 2022.01.10 |
Selenium: ํ์ ์ฐฝ ์ปจํธ๋กคํ๊ธฐ (7) | 2020.12.20 |
Selenium: ์์ ํ์ง ์์ ํ์ด์ง ์คํตํ๊ธฐ (8) | 2020.12.19 |