Python 파충류 중 Selenium 파일 업로드

프롤로그:대부분의 파일 업로드 기능 은 input 태그 로 이 루어 집 니 다.그러면 입력 상자 로 볼 수 있 고 send 를 통 해 이 루어 집 니 다.keys()지정 파일 을 업로드 하 였 습 니 다.
이 장 에서 사용 하 는 관건 적 인 방법 은 다음 과 같다.

send_keys():          
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('http://file.yiyuen.com/file/')

#       ,      
driver.find_element_by_name("files").send_keys('D:\\test.txt')
time.sleep(10)

driver.quit()

웹 에 로 컬 로 사진 을 올 리 면 팝 업 상자 인 셀 레 니 엄 은 식별 할 수 없다.즉,셀 레 니 엄 자체 가 로 컬 파일 을 올 리 는 직접적인 방법 이 없다 는 것 이다.여기 서 두 가지 파일 을 올 리 는 방식 을 정리 했다.
1.Robot 류 를 이용 하여 파일 을 업로드 합 니 다.
그 대체적인 절 차 는 다음 과 같다.
1.selenium 을 이용 하여 웹 에 있 는 로 컬 파일 의 업로드 단 추 를 누 르 십시오.
2.팝 업 된 탄 상자 에서 파일 경로 입력 상 자 는 기본적으로 커서 의 초점 을 맞 추고 파일 이 디스크 에 있 는 경 로 를 복사 하고 붙 이 는 방법 으로 씁 니 다.
3.리 턴 을 누 르 면 기본적으로 탄 상자 의 확인 단 추 를 누 르 고 파일 업로드 기능 을 완성 합 니 다.
바 이 두 의 첫 페이지 에서 그림 검색 을 예 로 들 면:
바 이 두 홈 페이지 를 열 면 검색 버튼 왼쪽 에 카메라 아이콘 이 있 습 니 다.클릭 하면 이미지 검색 을 선택 할 수 있 습 니 다.저 희 는 로 컬 로 사진 을 업로드 하 는 과정 을 통 해 파일 자동화 업로드 작업 을 모 의 합 니 다.준비 조건 은 바 이 두 그림 에서 그림 을 검색 하여 데스크 톱 에 저장 합 니 다.예 를 들 어 selenium 에 관 한 그림 을 찾 은 다음 데스크 톱 에 저장 합 니 다.이름 은 selenium.jpg 입 니 다.
관련 실현 코드 는 다음 과 같다.

package first;

import java.awt.Robot;

import java.awt.Toolkit;

import java.awt.datatransfer.StringSelection;

import java.awt.event.KeyEvent;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

public class shangchuang {

public static void main(String[] args)throws Exception {

WebDriver driver=new FirefoxDriver();

driver.manage().window().maximize();

driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);


driver.get("https://www.baidu.com");

//      

StringSelection selection=new StringSelection("C:\\Users\\     \\Desktop\\selenium.jpg");

//           

Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection, null);

System.out.println("selection"+selection);

//         

driver.findElement(By.xpath("//*/span[@class='soutu-btn']")).click();

//        

driver.findElement(By.xpath("//*/div[@class='upload-wrap']")).click();


//    Robot    

Robot robot=new Robot();

Thread.sleep(1000);

//  Ctrl+V

robot.keyPress(KeyEvent.VK_CONTROL);

robot.keyPress(KeyEvent.VK_V);

//  Ctrl+V

robot.keyRelease(KeyEvent.VK_CONTROL);

robot.keyRelease(KeyEvent.VK_V);

Thread.sleep(2000);

//    

robot.keyPress(KeyEvent.VK_ENTER);

robot.keyRelease(KeyEvent.VK_ENTER);
}
}
2.Autoit 를 이용 하여 파일 업로드
이상 은 첫 번 째 측의 실현 이 고 두 번 째 방식 은 AutoIt 이라는 도 구 를 이용 하 는 것 이다.스 크 립 트 언어 작성 을 지원 하 는 데스크 톱 GUI 자동 화 를 지원 하 는 도구 입 니 다.Selenium 스 크 립 트 에서 이 파일 업로드 기능 을 돕 기 위해 AutoIt 가 필요 하 다 면 다음 절 차 는 다음 과 같 습 니 다.
1.Selenium 웹 제품 의 파일 업로드 단 추 를 누 르 고 팝 업 창 업로드 상자.
2.AutoIt 를 실행 하여 준 비 된 스 크 립 트 파일 을 실행 합 니 다.이 스 크 립 트 파일 은 어떤 파일 을 업로드 하 는 지 에 대한.exe 파일 을 썼 습 니 다.
모든 테스트 작업 을 하기 전에,우 리 는 먼저 AutoIt 를 다운로드 하고 설치 합 니 다.
1)AutoIt 홈 페이지 다운로드 주소 열기
https://www.autoitscript.com/site/autoit/downloads/
2)zip 다운 로드 를 클릭 하면 에디터 도 다운로드 할 수 있다.

압축 해제 효 과 는 그림 과 같 습 니 다:

3)SciTe 폴 더 를 클릭 하면 스 크 립 트 편집 기 를 엽 니 다.SciTE.exe 를 더 블 클릭

4)바 이 두 이미지 업로드 창 을 열 고 AutoIt 스 크 립 트 편집기 와 요소 위치 지정 기 를 엽 니 다.요소 포 지 셔 닝 기 에 있 는 목표 점 모양 단 추 를 끌 어 파일 에 팝 업 창 을 올 리 면 요소 정 보 를 포착 할 수 있 습 니 다.

5)AutoIt 스 크 립 트 편집기 에 다음 스 크 립 트 를 입력 하 십시오.녹색 부분 은 설명 이 므 로 쓸 필요 가 없습니다.

6).exe 파일 로 컴 파일
로 컬 에 저장 합 니 다.예 를 들 어 기본 경로 로 저장 합 니 다.이름 은 UploadFile.au3 이 고 AutoIt 스 크 립 트 편집기 에서 Tools 메뉴 를 클릭 하고 copile 을 선택 하면 같은 경로 에서 UploadFile.exe 파일 을 생 성 합 니 다.잠시 후 Selenium 스 크 립 트 에서 사용 할 것 입 니 다.

7)Selenium 스 크 립 트 는 UploadFile.exe 파일 을 실행 하고 파일 이 업로드 되 었 는 지 확인 합 니 다.

package first;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

public class AutoIt {

public static void main(String[] args) throws Exception{

WebDriver driver=new FirefoxDriver();

driver.manage().window().maximize();

driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);


driver.get("http://www.baidu.com");

//         

driver.findElement(By.xpath("//*/span[@class='soutu-btn']")).click();

//        

driver.findElement(By.xpath("//*/div[@class='upload-wrap']")).click();

//      AutoIt     

Runtime.getRuntime().exec("C:\\Users\\     \\Desktop\\UploadFile.exe");

}

}

내 가 사용 한 것 은 화 호 62 인 데 최종 효 과 는 그림 과 같다.

Selenium 문집 전송 문:
표제
간단 한 소개
Python 파충류-Selenium(1)설치 및 사용
Selenium 의 의존 환경 이 Windows 와 Centos 7 에서 의 설치 및 간단 한 사용 을 상세히 소개 합 니 다.
Python 파충류-Selenium(2)요소 포 지 셔 닝 과 WebDriver 상용 방법
포 지 셔 닝 요소 의 8 가지 방식 을 상세 하 게 소개 하고 클릭 과 입력,제출,단언 정보 획득 등 방법 에 맞 게 사용 합 니 다.
Python 파충류-Selenium(3)브 라 우 저 를 제어 하 는 일반적인 방법
사용자 정의 브 라 우 저 창 크기 나 전체 화면,브 라 우 저 후퇴 제어,전진,브 라 우 저 새로 고침 등 방법 을 자세히 소개 합 니 다.
Python 파충류-Selenium(4)시작 항목 파라미터 설정
Selenium 시작 항목 파라미터 설정 을 자세히 소개 합 니 다.인터페이스 모드 없 음,브 라 우 저 창 크기 설정,브 라 우 저 User-agent(요청 헤더)등 이 있 습 니 다.
파 이 썬 파충류-셀 레 니 움(5)마우스 이벤트
마우스 우 클릭,더 블 클릭,드래그,마우스 서 스 펜 션 등 방법 에 대한 사용 을 상세히 소개 한다.
파 이 썬 파충류-셀 레 니 움(6)키보드 이벤트
키보드 의 조작 을 상세 하 게 소개 하 는데,거의 모든 상용 버튼 과 조합 키 를 포함한다.
파 이 썬 파충류-셀 레 니 움(7)다 중 창 전환
Selenium 이 서로 다른 창 사이 에서 자 유 롭 게 전환 하 는 방법 을 자세히 소개 합 니 다.
파 이 썬 파충류-Selenium(8)frame/iframe 폼 내장 페이지
현재 포 지 셔 닝 의 주체 에서 프레임/iframe 폼 의 내장 페이지 로 전환 하 는 방법 을 자세히 소개 합 니 다.
Python 파충류-Selenium(9)경고 상자(팝 업 창)처리
여러 종류의 경고 창 을 위치 추적 하고 처리 하 는 방법 을 상세히 소개 합 니 다.
Python 파충류-Selenium(10)드 롭 다운 처리
어떻게 유연 한 포 지 셔 닝 과 드 롭 다운 상 자 를 처리 하 는 지 상세 하 게 소개 합 니 다.
파 이 썬 파충류-셀 레 니 움(11)파일 업로드
어떻게 우아 하 게 send 를 통 해keys()지정 파일 업로드
Python 파충류-Selenium(12)로그 인 쿠키 획득 및 쿠키 추가 자동 로그 인
쿠키 를 획득 하고 쿠키 를 사용 하여 자동 로그 인 하 는 방법 을 자세히 소개 합 니 다.
파 이 썬 파충류-셀 레 니 움(13)요소 대기 설정
요소 대기 시간 을 우아 하 게 설정 하여 프로그램 이 너무 빨리 실행 되 어 요소 포 지 셔 닝 이 실패 하 는 것 을 방지 하 는 방법 을 상세히 소개 합 니 다.
파 이 썬 파충류-셀 레 니 움(14)창 캡 처
창 캡 처 를 어떻게 사용 하 는 지 자세히 소개 합 니 다.
Python 파충류-Selenium(15)브 라 우 저 닫 기
창 을 닫 는 두 가지 차이 점 을 자세히 소개 합 니 다.
파 이 썬 파충류 중 셀 레 니 움 구현 파일 업로드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 셀 레 니 움 파일 업로드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기