Selenium(Python 웹 테스트 도구)기본 용법 상세 설명

7023 단어 SeleniumPythonweb
이 글 의 실례 는 Selenium 의 기본 용법 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기