Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- STF
- create table
- rethinkdb
- Materials
- port forwarding
- centos
- kitura
- 28015
- postgres
- nGrinder
- ssh
- ubuntu
- ftp
- postgresql
- perfect
- Jupyter
- appium server
- PYTHON
- Jupyter Notebook
- openpyxl
- sshpass
- SWIFT
- 실행권한
- nmap
- GoCD
- insert
- STF_PortForwarding
- nohup
- appium
- mysql
Archives
- Today
- Total
don't stop believing
Selenium (Python) 설치와 기본 사용해 보기 (Mac) 본문
Selenium은 어려 개발 언어를 지원합니다. python 버전을 설치하고 기본 예제를 실행해 봅시다.
Python이 설치되어 있다면 pip으로 간단히 설치할 수 있습니다.
$ pip install selenium Collecting selenium Downloading selenium-3.7.0-py2.py3-none-any.whl (935kB) 100% |████████████████████████████████| 942kB 1.6MB/s Installing collected packages: selenium Successfully installed selenium-3.7.0
Mac에서 selenium을 실행한다면 geckodriver를 설치하고 설치된 위치를 확인합니다.
$ brew install geckodriver $ which geckodriver /usr/local/bin/geckodriver
아래와 같이 코드를 작성하고 실행하면 Firefox를 실행하고 google을 열어 검색창에 cheese!를 입력하게 됩니다.
Firefox가 설치되어 있어야 합니다.
from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0 import time # Create a new instance of the Firefox driver driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver') # go to the google home page driver.get("http://www.google.com") # the page is ajaxy so the title is originally this: print(driver.title) # find the element that's name attribute is q (the google search box) inputElement = driver.find_element_by_name("q") # type in the search inputElement.send_keys("cheese!") # submit the form (although google automatically searches now without submitting) inputElement.submit() time.sleep(5) try: # we have to wait for the page to refresh, the last thing that seems to be updated is the title WebDriverWait(driver, 10).until(EC.title_contains("cheese!")) # You should see "cheese! - Google Search" print(driver.title) time.sleep(5) finally: driver.quit()
Chrome에서 실행하고 싶다면 CrhomeDriver를 다운로드 합니다.
[https://sites.google.com/a/chromium.org/chromedriver/downloads]
그리고 아래와 같이 코드를 작성해 실행합니다.
import time from selenium import webdriver # Optional argument, if not specified will search path. driver = webdriver.Chrome('/Users/appium/Documents/SeleniumTest/chromedriver') driver.get('http://www.google.com/xhtml'); time.sleep(5) search_box = driver.find_element_by_name('q') search_box.send_keys('ChromeDriver') search_box.submit() time.sleep(5) driver.quit()
만약 실행 후 아래와 같은 메시지가 나올 경우 ChromeDriver 버전을 확인해야 합니다.
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80
현재 설치된 Chrome 브라우저 버전과 ChromeDriver의 버전은 동일해야 합니다.
보통 Selenium은 unittest와 함께 사용됩니다.
unittest와 함께 사용하는 기본 코드는 아래와 같습니다.
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_search_in_python_org(self): driver = self.driver driver.get("http://www.python.org") self.assertIn("Python", driver.title) elem = driver.find_element_by_name("q") elem.send_keys("pycon") elem.send_keys(Keys.RETURN) assert "No results found." not in driver.page_source def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
'Testing Automation > Selenium' 카테고리의 다른 글
Selenium With Python Document (0) | 2017.11.07 |
---|---|
로딩이 끝날때까지 기다리자 (Waits) (4) | 2017.11.07 |
find_element By로 정리하기 (2) | 2017.11.07 |
Selenium Locating Elements (python) (0) | 2017.11.07 |
Selenium IDG for Firefox Nightly (Windows) (0) | 2017.11.06 |
Comments