전체 네트워크 최전python 라이브러리selenium 자동화 사용 상세 강좌

1. selenium 설치


pip install Selenium

2. 브라우저 초기화

  • 크롬은 구글 브라우저를 초기화합니다
  • .파이어폭스는 파이어폭스 브라우저를 초기화합니다
  • Edge는 IE 브라우저를 초기화합니다
  • PhantomJS는 인터페이스가 없는 브라우저입니다..
  • 
    from selenium import webdriver
     
    driver = webdriver.Chrome()

    3. 브라우저 크기 설정


    maximize_윈도우 최대화 창
    set_window_크기 사용자 정의 창 크기
    
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.maximize_window()

    4. 액세스 페이지

    
    from selenium import webdriver
     
    driver = webdriver.Chrome()
     
    driver.get('https://www.baidu.com')

    5. 포지셔닝 요소


    요소를 포지셔닝하는 기본 방법은 다음과 같다.
    요소 찾기
    여러 요소 찾기
    설명하다
    find_element_by_id
    find_elements_by_id
    원소 id를 통해 위치 추적
    find_element_by_name
    find_elements_by_name
    요소name을 통해 위치 지정
    find_element_by_xpath
    find_elements_by_xpath
    xpath 표현식을 통해 포지셔닝
    find_element_by_link_text
    find_elements_by_link_tex
    전체 하이퍼링크를 통한 위치 지정
    find_element_by_partial_link_text
    find_elements_by_partial_link_text
    부분 링크를 통해 위치 지정
    find_element_by_tag_name
    find_elements_by_tag_name
    태그를 통한 위치 지정
    find_element_by_class_name
    find_elements_by_class_name
    클래스 이름을 통해 포지셔닝
    find_elements_by_css_selector
    find_elements_by_css_selector
    css 선택기를 통해 위치 추적
    실례 설명: 바이두 첫 페이지의 입력 상자를 찾습니다
    
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
    driver.find_element_by_id('kw')

    6. 요소를 포지셔닝하는 또 다른 기법


    By 모듈 도입 필요
    
    from selenium import webdriver
    from selenium.webdriver.common.by import By
     
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
    driver.find_element(By.ID, 'kw')

    7. 원소 상호작용


    방법
    설명하다
    click()
    요소 클릭
    send_keys(입력한 값)
    아날로그 입력
    clear()
    작업 지우기
    submit()
    양식 제출
    get_attribute(name)
    요소의 속성 값 가져오기
    location
    요소 위치 가져오기
    text
    요소의 텍스트 값 가져오기
    size
    요소 크기 가져오기
    id
    요소의 id 값 가져오기
    tag_name
    요소의 태그 이름 가져오기
    실례 설명: 바이두 입력 상자에 autofelix라고 입력하고 검색 단추를 누르십시오
    
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
    driver.find_element_by_id('kw').send_keys(' autofelix')
    driver.find_element_by_id('su').click()

    8. 실행 js

    
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.maximize_window()
     
    driver.get('https://www.baidu.com')
     
    js_sql = '''
      document.getElementById('kw').value = ' autofelix'
    '''
    driver.execute_script(js_sql)

    9. Frame 작업

  • 웹 페이지에 프레임이 있으면 삽입 절출 작업을 실행해야 합니다
  • switch_to.from (하위 iframe의 id 이름) 를 삽입합니다
  • switch_to.parent_프레임 (아버지 iframe의 id 이름) 을 잘라냅니다
  • 
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.maximize_window()
     
    driver.get('https://www.baidu.com')
     
    // iframe, , 
    driver.switch_to.frame(' iframe')

    10. 쿠키의 조작


     
    방법
    설명
    delete_all_cookies()
    현재 페이지의 모든 쿠키 삭제
    get_cookie(name)
    지정된 쿠키 값 가져오기
    get_cookies()
    현재 페이지의 모든 쿠키 값 가져오기
    add_cookie()
    쿠키 값 설정

    11. 탭 관리


    방법
    설명하다
    window_handles
    모든 탭의 메타그룹 저장
    switch_to.window()
    탭 전환
    
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.maximize_window()
     
    driver.get('https://www.baidu.com')
     
    driver.delete_all_cookies()
    driver.add_cookie({'name': 'name', 'domain': '.baidu.com', 'value': 'autofelix'})

    12. 마우스 이벤트


    마우스 이벤트를 도입해야 합니다ActionChains 방법
    설명
    move_to_element(above)
    우클릭
    double_click()
    마우스 더블 클릭
    drag_and_drop()
    왼쪽 버튼을 누른 채 드래그
    perform()
    동작 저장소
    인스턴스 데모: 슬라이더 검증 코드
    
    from selenium import webdriver
    from selenium.webdriver import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
     
    #  
    driver = webdriver.Chrome()
     
    #  
    driver.maximize_window()
     
    #  
    driver.get('https://sso.toutiao.com')
     
    #  
    WebDriverWait(self.driver, 10).until(
      EC.text_to_be_present_in_element((By.XPATH, '//*[@id="mobile-code-get"]/span'), u' ')
    )
     
    #  
    action = ActionChains(self.driver)
     
    #  
    action.click_and_hold(self.driver.find_element_by_xpath('//*[@id="captcha_container"]')).perform()
     
    #  x 
    action.move_by_offset(xoffset=x, yoffset=0).perform()
     
    #  
    action.release().perform()

    기다리다

  • 은씨 대기
  • 만약에 일정한 시간이 되면 지정한 원소가 나타나지 않고 프로세스가 막히지 않지만 지정한 시간이 되면 이상을 던진다
  • 
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
     
    driver.get('https://www.baidu.com')
  • 대기 중입니다
  • 만약 일정 시간 내에 지정한 요소가 나타나지 않으면 프로세스가 여기에 막히고 지정한 시간이 되도록 찾지 못하면 이상을 던진다
  • 
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
     
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
     
    driver.get('https://www.baidu.com')
    WebDriverWait(driver, 10).until(
      EC.presence_of_element_located((By.ID, 'kw'))
    )

    14, 전진, 후퇴와 갱신

  • 뒤로 물러나세요
  • forward 전진
  • refresh 브라우저 새로 고침
  • 
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
    driver.get('https://www.taobao.com')
    driver.get('https://www.jd.com')
     
    driver.back()
    driver.forward()
    driver.refresh()

    15. 브라우저 닫기

  • close 현재 탭을 닫습니다
  • 전체 브라우저를 닫습니다
  • 
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
    // , 
    driver.quit()
    이 글은 전체 네트워크의 가장 완전한python 라이브러리 selenium 자동화 사용 강좌에 대한 소개입니다. 더 많은 관련python 라이브러리 selenium 자동화 사용 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기