소프트웨어 테스트 도구

셀레늄 소프트웨어 테스트 도구

셀레늄은 웹 응용 프로그램 테스트를위한 도구는 대부분의 전통과 가장 인기있는 테스트 도구 중 하나입니다. 셀레늄 테스트는 동일한 작업에서 실제 사용자로, 브라우저에서 직접 실행합니다. 지원되는 브라우저 등 IE (7, 8, 9, 10, 11), 모질라 파이어 폭스, 사파리, 구글 크롬, 오페라 등이 포함됩니다. 이 도구의 주요 특징은 다음과 같습니다 : 테스트 및 브라우저 호환성 - 잘 다른 브라우저와 운영 체제에서 작동하도록했다 있는지 확인하기 위해 응용 프로그램을 테스트합니다. 테스트 시스템 기능 - 회귀 테스트 테스트 소프트웨어 기능 및 사용자 요구 사항을 만들 수 있습니다. 지원은 자동으로 기록 테스트 스크립트와 다른 언어로 작업을 자동으로 등등 닷넷, 자바, 펄 등을 생성합니다. 많은 기업이 도구는 다양한 프로그래밍 언어와 호환이기 때문에, 셀레늄을 선호하고, 테스트 프레임 워크와 통합 할 수 있습니다. 그것의 장점은 오픈 소스이며, 쉽게 다른 도구와 프레임 워크에 통합 될 수 있다는 것입니다.

설치 셀레늄 

때문에 셀레늄 브라우저를 제어 할 필요가 있으므로 몇 단계 더에 기존의 파이썬 모듈보다 설치합니다. 우선 사용은 터미널 또는 cmd를에 셀레늄을 설치 PIP.

 

 

브라우저를 제어하기 위해 여러 주류 브라우저가 드라이버가 들어, 드라이버 브라우저. 셀레늄이 있어야합니다.  들어 리눅스와 맥 OS .

좋은 리눅스와 맥 OS 사용자가 다운로드 후 컴퓨터 "는 / usr / 빈"또는 실행 권한을 부여 "/ usr / 지방 / 빈"디렉토리에 좋은 "geckodriver"파일을 다운로드하십시오, 넣어하지 않습니다 이 문을 사용합니다.

 

 

들어 Windows 사용자의 공식 라인 인수 , 특별히 조작하는 방법을 언급하지 않는 것, 생각, Windows 환경 변수 (PATH)에 추가 geckodriver 파일의 위치해야한다.

당신은 어떤 질문을 설치 한 경우 자신에, 제발 공식 웹 사이트 솔루션에 대한 쿼리를 .

 


첫째, 문 브라우저 개체를 가져올 수 없습니다 발생할 수 있습니다, 셀레늄으로 명명되지 않은 점, 파이썬 파일 이름 또는 패키지 이름을 기록 webdriver 셀레늄 가져 오기에서 #webdriver은 브라우저를 구동하기 위해 고려 될 수있다, 브라우저가 webdriver 구동하는 데 사용되어야하며, 멀티 지원 브라우저의 종류, 여기 예제를위한 크롬 브라우저 = webdriver.Chrome () 둘째, 액세스 페이지와 페이지의 HTML 얻을 셀레늄 가져 오기 webdriver의에서 브라우저를 = webdriver.Chrome () browser.get ( 'https://www.taobao.com' ) 인쇄 (browser.page_source) #의 browser.page_source 페이지는 모든 HTML을 얻을 수 있습니다 browser.close ()가 , 세 번째 요소를 찾을 단일 요소의 셀레늄 webdriver 가져 오기에서 브라우저 = webdriver.Chrome () //가 WWW : browser.get ( 'HTTPS를. taobao.com ') input_first browser.find_element_by_id = ('Q ') input_second browser.find_element_by_css_selector = ('#의 Q ') browser.find_element_by_xpath input_third = ( '// * [ID = "Q"@]) 인쇄 (input_first, input_second, input_third) browser.close () 방법을 찾는 것이 일반적 find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector 수있는 범용 방법 webdriver 셀레늄을 가져올 으로 selenium.webdriver.common.by 오기로부터 브라우저 webdriver.Chrome = () browser.get ( 'https://www.taobao.com') input_first = browser.find_element (BY.ID, 'Q' ) # 첫번째 인자 이름, 제 전달 특정 파라미터 인쇄 (input_first) browser.close () 소자의 복수의 요소의 복수 input_first browser.find_elements_by_id = ( 'Q') 네 개의 요소가 상호 - 수신 키워드 검색 창에 자동 검색 셀레늄의 webdriver 가져 오기 가져 오기 시간 브라우저 = webdriver.Chrome () browser.get ( 'https://www.taobao.com') INPUT = browser.find_element_by_id ( 'Q') # 찾기 검색 상자 input.send_keys ( '아이폰' 로) # 이미지 전송 time.sleep (. 5) input.clear () # 검색 상자 취소 input.send_keys ( '남성 속옷') 검색 버튼을 # 찾기 버튼 = browser.find_element_by_class_name ( 'BTN-검색') (Button.Click를 ) 더 : 당신은 속성을 가질 수있다, 스크린 샷 등 http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement# 다섯 명 대화 형 작업, 드라이브 브라우저 액션, 시뮬레이션 드래그 동작은, 동작이 수행되는 직렬 연쇄 동작 첨부 webdriver 셀레늄 오기로부터 ActionChains # 임포트 조작 체인 selenium.webdriver로부터 도입하는 동작 도입 webdriver 수입 ActionChains # 체인 브라우저 webdriver.Chrome = () URL = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable ' browser.get (URL) browser.switch_to.frame ('iframeResult ')가 iframeResult 프레임 # 1로 전환 소스 = browser.find_element_by_css_selector ( '# 드래그') # 개체를 찾을 끌려 대상 = browser.find_element_by_css_selector ( '# 낙하 할' ) #은 대상을 찾을 # 조치를 목표로 선언 액션 =의 ActionChains (브라우저) actions.drag_and_drop를 (소스, 대상) actions.perform () #이 작업을 수행 할 추가 조치 : http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains 여섯 자바 스크립트 실행 등의 진행률 표시 줄의 드롭 다운으로 일부 작업이 가능한 API를하지 않을 수 있습니다를, 이 경우, 우리는 자바 스크립트에 의해 실행을 코딩 할 수 있습니다 webdriver 셀레늄 가져 오기에서 브라우저 = webdriver.Chrome () browser.get ( 'https://www.zhihu.com/explore') browser.execute_script ( 'window.scrollTo (0, document.body.scrollHeight)') browser.execute_script ( '()'아래로 '경고') 七,元素信息获取 获取属性 셀레늄 수입 webdriver에서 selenium.webdriver 수입 ActionChains에서 브라우저 = webdriver.Chrome () URL = 'https://www.zhihu.com/explore' browser.get (URL) 로고 = browser.find_element_by_id ( '에서 zh-상위 링크 로고') #获取网站로고 인쇄 ( 로고) 인쇄 (logo.get_attribute ( '클래스')) browser.close () 获取文本值 셀레늄 수입 webdriver의에서 브라우저 = webdriver.Chrome () URL = 'https://www.zhihu.com/explore' browser.get (URL)를 입력 browser.find_element_by_class_name = ( 'ZU-최고 추가 질문 ') 인쇄 (input.text) #의 input.text 텍스트 값 browser.close ( ) # 아이디, 위치, 태그 이름, 크기 얻을 셀레늄 수입 webdriver에서을 = webdriver.Chrome 브라우저 () URL = 'https://www.zhihu.com/explore' browser.get (URL) INPUT = browser.find_element_by_class_name ( '추가-ZU-상위 질문') 인쇄 (input.id) # 위에서 아이디 언급 얻을 인쇄 (input.location) # 얻을 위치 인쇄 (input.tag_name) # 태그 이름을 얻을 인쇄 (input.size) #이의 크기를 얻을 ) (browser.close를 팔은 프레임 운영 프레임은 부모의 경우, 별도의 페이지에 해당 부모 클래스 스위칭 찾을 필요하다면 네트워크 기반 조회 서브 프레임, 프레임은, 서브 클래스에 서브 클래스를 전환해야합니다 webdriver 셀레늄 가져 오기에서 가져 오기는 NoSuchElementException의 selenium.common.exceptions에서 브라우저 = webdriver.Chrome () HTTP를 URL = ' : //www.runoob.com/try/try.php 파일 이름 = jQueryUI는-API-낙하 할 '? browser.get (URL) browser.switch_to.frame ('iframeResult ') = ( '#와 드래그') browser.find_element_by_css_selector 소스 인쇄 (소스) 은 try : 로고 = browser.find_element_by_class_name ( '로고') 예외 : NoSuchElementException 제외 : 인쇄 ( 'NO LOGO') browser.switch_to.parent_frame () 로고 browser.find_element_by_class_name = ( '로고') 인쇄 (로고) 인쇄 (logo.text) 구, 대기 대기 암시 WebDriver는 DOM의 요소를 찾을 수없는 경우, 실행되는 대기 시간의 암시 적 테스트를 사용하는 경우, 설정 시간이지나 기다려야 할 것 예외는 요소를 찾을 수 없습니다 던졌습니다 요소 또는 요소가 바로 표시되지 않은 찾을 수 즉를 암시 적으로 DOM을 찾을 수있는 시간을 기다리는 대기, 기본 시간은 0 셀레늄 webdriver 가져 오기에서 브라우저 = webdriver.Chrome () browser.implicitly_wait (10) #은 그것이 10 초 내에 정상으로 돌아로드, 예외가로드되지 발생합니다 10 초 정도 기다린 후 browser.get ( 'https://www.zhihu.com/explore') browser.find_element_by_class_name = INPUT ( '추가-ZU-상위 질문') 인쇄 (INPUT) 명시 적으로 대기 대기 조건을 지정하고 최대 대기 시간, 프로그램은 수익을 만족하면 조건, 대기 시간 내에 만족 여부를 결정 만족하지 기다릴 계속하는 경우는 예외가 발생합니다 시간이 지남에 셀레늄 가져 오기 webdriver에서 가져 오기에 의해 selenium.webdriver.common.by에서을 selenium.webdriver.support.ui 가져 오기 WebDriverWait에서 EC의 AS selenium.webdriver.support 가져 오기 expected_conditions에서 브라우저 webdriver.Chrome = () browser.get ( 'https://www.taobao.com/') 대기 = WebDriverWait (브라우저, 10) INPUT = wait.until (EC.presence_of_element_located ((By.ID 'Q') )) 버튼 = wait.until (EC.element_to_be_clickable ((By.CSS_SELECTOR, '.btn-검색'))) 인쇄 (INPUT, 버튼) title_is는 콘텐츠의 제목입니다 title_contains 헤더가 포함 된 콘텐츠 등 (By.ID, 'P')로 들어오는 튜플 위치,로드 요소를 presence_of_element_located visibility_of_element_located 요소가 가시 들어오는 위치 튜플 보이는 전달 요소 객체 visibility_of 부하에있는 모든 요소를 presence_of_all_elements_located 소자 텍스트가 텍스트 포함 text_to_be_present_in_element 소자 값 text_to_be_present_in_element_value 텍스트 포함 로드 전환 frame_to_be_available_and_switch_to_it 프레임 invisibility_of_element_located 요소가 아니다 볼 element_to_be_clickable 요소가 방문 할 수있는 페이지가 갱신 여부를 결정할 수 요소가 여전히 DOM 여부를 확인 staleness_of 객체의 요소, element_to_be_selected 선택적 요소를 통과 들어오는 위치 튜플, 선택할 수 element_located_to_be_selected 요소를 element_selection_state_to_be 들어오는 개체 및 국가의 요소, 동일한 True를 반환, 그렇지 않으면 False를 반환 element_located_selection_state_to_be 그렇지 않으면, 수신 튜플과 국가, 진정한 동일한 수익률을 찾아 False를 반환 경고를 표시할지 여부를 alert_is_present을 세부 : HTTP : //selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.expected_conditions XI, 앞으로 및 백 - 앞뒤로 달성하기 위해 다른 브라우저에서 웹 검색 가져 오기 시간 셀레늄 가져 오기에서 webdriver의 브라우저 = webdriver.Chrome () browser.get ( 'https://www.baidu.com/') browser.get ( 'https://www.taobao.com/') browser.get ( 'HTTPS : / /www.python.org/ ') browser.back () time.sleep. (1) browser.forward () browser.close () 열두 쿠키 webdriver 셀레늄 오기로부터 브라우저 webdriver.Chrome = () browser.get (' https://www.zhihu.com/explore ') 인쇄 (browser.get_cookies ()) browser.delete_all_cookies () browser.add_cookie ({'이름 ':'이름 ','도메인 ':'www.zhihu.com ''가치', 'germey'}) 인쇄 (browser.get_cookies ()) 인쇄 (browser.get_cookies ()) 选项卡管理增加浏览器窗口 수입 시간 셀레늄 수입 webdriver의에서 브라우저 = webdriver.Chrome () browser.get ( 'https://www.baidu.com') browser.execute_script ( '창 .open ()) 프린트 (browser.window_handles) browser.switch_to_window (browser.window_handles [1]) browser.get ( 'https://www.taobao.com') time.sleep (1) browser.switch_to_window (브라우저 .window_handles [0]) browser.get ( 'http://www.fishc.com') 十三,异常处理 셀레늄 수입 webdriver에서의 브라우저 webdriver.Chrome = () browser.get ( 'https://www.baidu .COM ') browser.find_element_by_id ('안녕하세요 ') 셀레늄 수입 webdriver에서 selenium.common.exceptions가 TimeoutException, NoSuchElementException이 가져 오기에서 브라우저 = webdriver.Chrome () : 시도 browser.get ( 'https://www.baidu.com')를 TimeoutException 제외 : 인쇄 ( '타임 아웃')는 시도 : browser.find_element_by_id를 ( '안녕하세요') : 예외 : NoSuchElementException을 제외하고 인쇄 ( '없음 요소') 마지막 : browser.close ()

추천

출처www.cnblogs.com/neddyface/p/10963034.html