셀레늄 (X) : 위치 요소, 마우스 이벤트, 키보드 이벤트를 사용하여

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

추천

출처www.cnblogs.com/liuhui0308/p/11960688.html