Selenium+Python 자동화 조작 로그 인 인터페이스 인 스 턴 스(간단 한 인증 코드 이미지 검증)
웹 페이지 자동화 테스트 를 실시 하고 페이지 의 요 소 를 포 지 셔 닝 하고 조작 하 는 것 이 핵심 입 니 다.조작 은 포 지 셔 닝 을 전제 로 하기 때문에 페이지 요소 에 대한 포 지 셔 닝 은 자동화 테스트 를 하 는 기초 이다.
페이지 의 요 소 는 사람 처럼 여러 가지 속성 이 있 습 니 다.예 를 들 어 요소 이름,요소 id,요소 속성(class 속성,name 속성)등 이 있 습 니 다.webdriver 는 요소 의 이러한 속성 을 이용 하여 포 지 셔 닝 을 하 는 것 입 니 다.
포 지 셔 닝 에 사용 할 수 있 는 자주 사용 되 는 요소 속성:
id
name
class name
tag name
link text
partial link text
xpath
css selector
웹 드라이버 에 대응 하 는 포 지 셔 닝 방법 은 다음 과 같 습 니 다.
driver.find_element_by_가장 많이 쓰 이 는 간단 하 다
driver.find_element_by_가장 자주 사용 되 는 간단 하 다
driver.find_element_by_class_name()
driver.find_element_by_tag_가장 믿 을 수 없다
driver.find_element_by_link_text()―포 지 셔 닝 문자 연결
driver.find_element_by_partial_link_text()―포 지 셔 닝 문자 연결
driver.find_element_by_xpath()―가장 유연 하고 만능
driver.find_element_by_css_selector()
위 는 하나의 요 소 를 찾 는 방법 이 고 해당 웹 driver 도 하나의 요 소 를 찾 는 방법 이 있 습 니 다.
driver.find_elements_by_name()
driver.find_elements_by_id()
driver.find_elements_by_class_name()
driver.find_elements_by_tag_name()
driver.find_elements_by_link_text()
driver.find_elements_by_partial_link_text()
driver.find_elements_by_xpath()
driver.find_elements_by_css_selector()
인터페이스 에서 알 수 있 듯 이 주로 세 개의 입력 데이터 가 필요 하 다.먼저 우 리 는 F12 를 파악 하여 페이지 요 소 를 봐 야 한다.텍스트 상 자 를 오른쪽 단추 로 눌 러 요 소 를 봅 니 다.(사용자 이름 텍스트 상 자 를 예 로 들 면)
이 텍스트 상자 에 사용자 이름"XXX"를 입력 하 십시오.코드 는 다음 과 같 습 니 다.
driver.find_element_by_id("os_username").send_keys("XXX")
암 호 는 같다.인증 코드 작업 이 복잡 합 니 다.PIL+tesseract+image 코드 라 이브 러 리 를 사용 해 야 합 니 다.미리 준비 해 야 합 니 다.제 생각 은 먼저 driver.save 를 사용 하 는 것 입 니 다.screenshot("test.png")은 이 전체 로그 인 인터페이스 를 캡 처 하고 저장 한 다음 에 인증 코드 영역 을 선택 하여 캡 처 하여 저장 합 니 다.영역 선택 은 region=(left.x,left.y,right.x,right.y)을 사용 합 니 다.그 중에서(left.x,left.y)은 왼쪽 상단 픽 셀 좌표 이 고(right.x,right.y)는 오른쪽 하단 픽 셀 좌표 입 니 다.nimg=img.crop(region)을 사용 하여 인증 코드 영역 을 캡 처 하고 nimg.save("new"test.png)저장 합 니 다.마지막 으로 pytesseract.imageto_string(image)방법 은 그림 인증 코드 를 문자열 로 변환 합 니 다.구체 적 인 코드 구현 은 추가 코드 를 참조 하 십시오.
세 개의 입력 이 완료 되면 로그 인 단추 의 클릭 입 니 다.F12 요 소 는 그림 과 같 습 니 다.
코드 는 다음 과 같 습 니 다:
driver.find_element_by_class_name("btnSub").click()
이때 로그 인 을 완료 할 수 있 습 니 다.이 인증 코드 를 식별 하 는 방법 은 간단 한 인증 코드 만 식별 할 수 있 고 너무 복잡 한 식별 은 오류 가 발생 할 수 있 습 니 다.주:한자 로 로그 인 하려 면 사용 해 야 합 니 다.
G = u” ”
driver.find_element_by_id(“os_username”).send_keys(G)
상세 코드
# -*- coding: utf-8 -*-
#coding=UTF-8
from selenium import webdriver
from PIL import Image
import pytesseract
driver = webdriver.Chrome()
driver.get('http://XXX') #
driver.refresh() #
driver.maximize_window() #
driver.save_screenshot("test.png")
img = Image.open("test.png")
region = (940, 355, 1030, 385)#
nimg = img.crop(region)
nimg.save("new_test.png")
image = Image.open("new_test.png")
vcode = pytesseract.image_to_string(image)
driver.find_element_by_id("os_username").send_keys("XX
X")
driver.find_element_by_id("password").send_keys("XXX")
driver.find_element_by_id("RandomCode").send_keys(vc
ode)
driver.find_element_by_class_name("btnSub").click()
이상 의 Selenium+Python 자동화 조작 로그 인 인터페이스 인 스 턴 스(간단 한 인증 코드 이미지 검증 이 있 음)는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python Selenium XPath 텍스트 내용에 따라 요소 찾기 방법문제 현상 요소의 속성에 id,name이 없습니다.class가 있지만 비교적 대중적이고 위치도 고정되지 않는다.예를 들어 페이지 번호의 다음 페이지;그러면 어떻게 이 원소를 찾아야 합니까? 해결 방법 text() t...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.