1. 위치 결정 소자
이전에 설명한 방법 단위에 더하여, 또한 WebDriver있어서의 위치 및 인입 위치 결정 방법에 상응하는 파라미터를 배치함으로써 선언, 쓰기의 다른 세트, 즉 find_element 통합 () 메소드의 호출을 제공한다. 으로는 다음과 같습니다 :
행 타임 수입 수면 에서 셀레늄 수입 webdriver 에서 selenium.webdriver.common.by의 임포트 함으로써 WD = webdriver.Chrome () wd.get ( ' https://www.baidu.com/ ' ) wd.find_element (By.ID, " kw " ) wd.find_element (By.NAME는, " WD " ) wd.find_element (By.CLASS_NAME, " s_ipt " ) wd.find_element (By.TAG_NAME, " 입력 " ) wd.find_element (By.LINK_TEXT U," 新闻" ) wd.find_element (By.PARTIAL_LINK_TEXT, U " 新" ) wd.find_element (By.XPATH, " // * @ 클래스 = 'BG s_btn'] " ) wd.find_element (By.CSS_SELECTOR, " 스팬 .bg.s_btn_wr> 입력 # SU " )
find_element () 메소드는 요소의 위치를 위해 사용된다. 이것은 첫번째 파라미터 저자에 의한 위치의 유형이며, 두 개의 매개 변수를 필요 DETAILED 번째 파라미터가 있습니다. 사용하기 전에함으로써 필요한 클래스를 도입함으로써.
에서 selenium.webdriver.common.by의 수입 으로
구현 코드들은 아이들이, 예를 들어, WebDriver의 바닥을보고 () 메소드를 find_element_by_id 달성하는 것을 발견 한 것입니다.
데프 find_element_by_id (자기, ID_) : "" " ID로 요소를 찾습니다. : 인수 : - ID \ _ - 요소의 ID를 찾을 수 있습니다. : 반환 값 : - WebElement - 요소가 발견 된 경우 :시킵니다 : - 예외 : NoSuchElementException - 요소가 발견되지 않은 경우 : 사용법 : 요소 = driver.find_element_by_id ( 'foo는') "" " 반환 (= By.ID, 값 = ID_에 의해) self.find_element
그러나 WebDriver 이상 권장 표현은 물론, 기능을 분배하여 사용할 내 회사의 바닥은, 앞에서 설명한.
2. 마우스 이벤트
전면에만 사용 클릭 () 메소드뿐만 아니라, 마우스 클릭, 더블 클릭, 가져가, 심지어 마우스 드래그 기능으로, 다른 마우스 상호 작용을 이해합니다.
이 장에서는 I에서는 이러한 기능을 설명합니다.
WebDriver, 이러한 방법에 마우스를 ActionChains 클래스에서 포장 작업을 제공합니다.
ActionChains 클래스는 마우스 동작의 일반적인 방법을 제공한다 :
() 수행 저장된 모든 ActionChains의 실행 동작
context_click () : 마우스 오른쪽 단추로 클릭
DOUBLE_CLICK () : 더블 클릭
) (drag_and_drop : 드래그
) (move_to_element : 호버를
2.1 마우스 오른쪽 클릭 작업
마우스 사용 클래스에 대한 방법은 이전에 클릭을 배운 ActionChains을 () 메소드는 다르다 제공합니다.
나는 우리의 예를 가지고 올 수 있도록 사이트를 마우스 오른쪽 기대할 수 오랜 시간, 렝 시모 생각했다.
마우스 제공 ActionChains 소개 :
에서 selenium.webdriver의 수입 ActionChains
전화 ActionChains (드라이버) 클래스 인수로 브라우저 드라이버 드라이버, 나는 일반적으로 구동되는 이름 WD 브라우저를 사용합니다.
ActionChains (WD)
당신을 마우스 오른쪽 초 context_click (오른쪽) 메서드 호출은 요소의 위치에 대한 필요성이다.
ActionChains (WD) .context_click (오른쪽)
ActionChains이 저장된 모든 행위를 수행, 전체 작업의 작용에 제출하는 것으로 이해 될 수있다.
ActionChains (WD) .context_click (오른쪽) .perform ()
2.2 팝업 마우스 오버 드롭 다운 메뉴가 생성되는 매우 기능적인 디자인입니다.
move_to_element () 메소드는 마우스 오버 동작을 시뮬레이션하고 사용 context_click () 같은 수 있습니다.
에서 시간 가져 SLEEP 에서 셀레늄 오기 webdriver 에서 selenium.webdriver 오기 ActionChains WD = webdriver.Chrome () wd.get ( ' https://www.baidu.com/ ' ) # 요소는 타겟팅하기를 올려 = WD 위 .find_element_by_xpath ( " // DIV [ID = @ 'U1'] / A [. 8 " ) # 마우스 호버링 동작을 수행하는 요소 위치의 위 ActionChains (WD)을 .move_to_element .perform ()
2.3 두 번 클릭 동작
초 당신을 두 번 클릭 동작을위한 방법을 DOUBLE_CLICK. 그리고 이전의 사용은 완전히 동일하지 코드를 보여줍니다.
2.4 드래그 앤 드롭 작업
drag_and_drop (소스, 타겟) 소스 요소 마우스 왼쪽 버튼을 누른 다음, 타겟 요소를 해제 옮겼다.
출처 : 마우스가 소스 요소를 드래그합니다
대상 : 마우스가 해제 대상 요소
이것은 내가 사용하는 기대하지 않았다 경우,이 요구되는 인증 코드를 다시 슬라이딩 할 수도있다.
3. 키보드 이벤트
키 () 클래스의 방법은 거의 모든 키보드의 키의 제공합니다. 전면 방법뿐만 아니라, 시뮬레이션 키보드 입력에 사용할 수있다 () send_keys, 우리는 또한 키보드, 또는 Ctrl + A, Ctrl + C와 같은 키, 심지어 조합 키를 입력하는 데 사용할 수 있습니다, 배웠습니다.
에서 시간 가져 오기 SLEEP 에서 셀레늄 가져 오기 webdriver 에서 selenium.webdriver.common.keys 가져 오기 키 WD = webdriver.Chrome () wd.get ( ' https://www.baidu.com/ ' ) #의 입력 상자 콘텐츠 wd.find_element_by_id ( " kw " ) .send_keys는 ( " seleniumm " ) # m의 삭제 다중 입력 (wd.find_element_by_id " kw " ) .send_keys (Keys.BACK_SPACE) #의 입력 공간 + "입문서" wd.find_element_by_id (" kw 급 " ) .send_keys는 (Keys.SPACE) (wd.find_element_by_id " kw " ) .send_keys ( " 가이드 " ) # Ctrl + A를 선택 입력 상자의 내용은 (wd.find_element_by_id " kw " , Keys.CONTROL) .send_keys을 ( ' ' ) # 에서 Ctrl + X 전단 콘텐츠 입력 상자 wd.find_element_by_id ( " 킬로와트 " ) .send_keys (Keys.CONTROL, ' X ' ) # 에서 Ctrl + V 입력 박스의 내용을 붙여 (wd.find_element_by_id " 킬로와트 " ) .send_keys을 (Keys.CONTROL,' V ' ) # Enter 키를 클릭하여 대신 작업의 wd.find_element_by_id을 ( " SU " ) .send_keys (Keys.ENTER)
위의 코드는 우리에게 키보드 키 및 키 조합을 사용하여 시뮬레이션의 모든 종류를 보여, 작은 실용적인 의미의 것을 주목해야한다.
사용 키보드 키 클래스 메서드의 요구에 앞서 가져올 수 있습니다.
에서 selenium.webdriver.common.keys의 수입 키
다음은 일반적으로 사용되는 키보드입니다 :
send_keys (Keys.BACK_SPACE) Delete 키
send_keys (Keys.SPACE) 스페이스
send_keys (Keys.TAB) 태뷸
send_keys (Keys.ESCAPE) 백 스페이스 키
send_keys은 (Keys.ENTER) 키를 입력
send_keys (Keys.CONTROL, 'A' )全选
send_keys (Keys.CONTROL, 'C') 복사
send_keys (Keys.CONTROL, 'X' ) 전단
send_keys (Keys.CONTROL 'V' ) 붙여
send_keys (Keys.F1) 키보드 F1
......
send_keys (Keys.F12) 키보드 F12