Selenium(Python 웹 테스트 도구)기본 용법 상세 설명
Selenium 은 웹 프로그램 테스트 에 사용 되 는 도구 입 니 다.Selenium 테스트 는 실제 사용자 가 조작 하 는 것 처럼 브 라 우 저 에서 직접 실 행 됩 니 다.지원 하 는 브 라 우 저 는 IE(7,8,9,10,11),Mozilla Firefox,Safari,Google Chrome,Opera 등 이다.이 도구 의 주요 기능 은 브 라 우 저 와 의 호환성 을 테스트 하 는 것 입 니 다.응용 프로그램 이 서로 다른 브 라 우 저 와 운영 체제 에서 잘 작 동 하 는 지 테스트 하 는 것 입 니 다.테스트 시스템 기능-회귀 테스트 검사 소프트웨어 기능 과 사용자 수 요 를 만 듭 니 다.자동 녹화 동작 과.Net,Java,Perl 등 서로 다른 언어 를 자동 으로 생 성 하 는 테스트 스 크 립 트 를 지원 합 니 다.
설치 하 다.
pip install selenium
드라이버 를 설치 하 다다음은 몇 가지 주류 브 라 우 저의 드라이버 다운로드 주 소 를 소개 합 니 다.
브 라 우 저
다운로드 주소
Chrome
https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox
https://github.com/mozilla/geckodriver/releases
Safari
https://webkit.org/blog/6900/webdriver-support-in-safari-10/
다음은 windows 환경,Chrome 브 라 우 저 를 예 로 들 면 2.36 버 전의 구동 chromedriver 를 다운로드 합 니 다.win 32.zip,chromedriver.exe 파일 을 압축 해제 하여 브 라 우 저의 설치 디 렉 터 리 에 배치 합 니 다.그림 참조:
selenium 의 간단 한 용법
만약 당신 이 위 에 selenium 을 설치 하고 드라이버 를 설치 했다 면 다음은 selenium 을 간단하게 놀 아 보 겠 습 니 다.
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
# Chrome WebDriver ,
driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
# URL
driver.get("http://www.baidu.com/")
#
assert " " in driver.title
# id=kw
element = driver.find_element_by_id("kw")
# , python
element.clear()
element.send_keys("python")
element.send_keys(Keys.RETURN)
#
assert "No results found." not in driver.page_source
# , quit()
driver.close()
위의 밤 은 selenium 의 용법 을 간단하게 소개 하 였 으 며,다음은 selenium 과 unittest 를 결합 하여 테스트 를 작성 할 것 입 니 다.
import unittest
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
# TestCase,
class BaiduCase(unittest.TestCase):
#
def setUp(self):
self.driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
# , , test
def test_serch(self):
self.driver.get("https://www.baidu.com/")
assert " " in self.driver.title
element = self.driver.find_element_by_id("kw")
element.clear()
element.send_keys("python")
element.send_keys(Keys.RETURN)
assert "No results found." not in self.driver.page_source
# ,
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
위의 코드 를 실행 하면 다음 과 같은 정 보 를 되 돌려 줍 니 다..
----------------------------------------------------------------------
Ran 1 test in 2.914s
OK
주의해 야 할 것 은 드라이버 가 설정 되 어 있 지 않 거나 경로 가 잘못 쓰 여 있 으 면 WebDriverException 오류 가 발생 할 수 있 습 니 다.
웹 페이지 와 상호작용
한 웹 페이지 와 의 진정한 상호작용,구체 적 으로 말 하면 웹 페이지 의 HTML 요소 와 상호작용 을 한다.대화 가 필요 하 다 면 HTML 요 소 를 오래 찾 아야 합 니 다.웹 드라이버 는 HTML 요 소 를 찾 는 다양한 방법 을 제공 합 니 다.예 를 들 어 주어진 요 소 는:
<input type="text" name="passwd" id="passwd-id"/>
우 리 는 아래 의 임의의 방법 으로 그것 을 찾 을 수 있다.
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
값 은 xpath 를 사용 하여 일치 할 때 여러 요소 가 검색 과 일치 하면 첫 번 째 요소 만 되 돌려 줍 니 다.아무것도 찾 지 못 하면 NoSuchElement Exception 오류 로 돌아 갑 니 다.원 소 를 찾 았 을 때 무엇 을 할 수 있 습 니까?우선 텍스트 탭 에 텍스트 를 입력 할 생각 을 할 수 있 습 니 다.
element.send_keys("python")
Keys 를 사용 하여 화살표 키 를 시 뮬 레이 션 할 수도 있 습 니 다.
from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.ARROW_DOWN)
텍스트 탭 의 내용 을 지 우려 면clear()
방법 을 사용 하 십시오.
element.clear()
드 롭 다운 메뉴 의 상 태 를 전환 합 니 다.각 옵션 을 순서대로 선택 하고 각 옵션 을 순서대로 선택 할 수 있 습 니 다.
element = driver.find_element_by_xpath("//select[@name='name']")
all_options = element.find_elements_by_tag_name("option")
for option in all_options:
option.click()
보시 다시 피 이것 은 select 요 소 를 처리 하 는 가장 효과 적 인 방법 이 아 닙 니 다.WebDriver 패키지 에는 Select 라 는 클래스 도 포함 되 어 있 습 니 다.이러한 종류의 상호작용 에 유용 한 방법 을 제공 합 니 다.
from selenium.webdriver.support.ui import Select
element = driver.find_element_by_xpath("//select[@name='name']")
select = Select(element)
select.select_by_index(index)
select.select_by_visible_text("text")
select.select_by_value("value")
WebDriver 는 모든 옵션 을 선택 취소 하 는 기능 도 제공 합 니 다.
element = driver.find_element_by_id('id')
select = Select(element)
select.deselect_all()
Select 는 선택 한 모든 탭 을 가 져 오 는 방법 도 가지 고 있 습 니 다.
element = driver.find_element_by_id('id')
select = Select(element)
all_options = select.all_selected_options
사용 가능 한 모든 옵션 가 져 오기:
options = select.options
완료 후 양식 을 작성 하면 제출 할 수 있 습 니 다.submit 단 추 를 찾 아 클릭 하 는 방법 입 니 다.
driver.find_element_by_id('submit').click()
웹 드라이버 는 모든 요소 에 submit 의 편리 한 방법 이 있 습 니 다.폼 의 요 소 를 올 리 면 웹 드라이버 는 폼 이 포 함 될 때 까지 DOM 을 옮 겨 다 니 며 호출 합 니 다.
element.submit()
WebDriver 는 전진 과 후퇴 동작 도 제공 합 니 다.
driver.forward()
driver.back()
WebDriver 는 쿠키 를 설정 하고 쿠키 를 가 져 올 수 있 습 니 다.
driver.get('https://www.baidu.com/')
driver.add_cookie({"name":"foo","value":"laozhang"})
print(driver.get_cookies()
더 많은 파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python Selenium XPath 텍스트 내용에 따라 요소 찾기 방법문제 현상 요소의 속성에 id,name이 없습니다.class가 있지만 비교적 대중적이고 위치도 고정되지 않는다.예를 들어 페이지 번호의 다음 페이지;그러면 어떻게 이 원소를 찾아야 합니까? 해결 방법 text() t...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.