2014-01-20 3 views
0

내 PC에서 웹 응용 프로그램으로 파일을 업로드하려고하는 python 스크립트가 있습니다. WebDriver를 통해 브라우저의 특정 업로드 버튼을 누르면 업로드 할 파일을 탐색하고 선택할 수있는 Win7 탐색기 창이 열립니다. 삐이 누토로 어떻게이 창을 조작 할 수 있습니까?WebDriver & PyWinAuto를 사용하여 파일 업로드

선택 사항 : Linux에서이 작업을 수행 할 수 있습니까?

이 내 예제 코드입니다 :

내가 마크 동의
wd.find_element_by_css_selector("img.editLecturesButtons.fromVideo").click() 
#switch to the lightbox 
wd.switch_to_frame(int("1")) 
#hit upload 
wd.find_element_by_xpath("//*[@id='fileUpload']").click() 
#TODO 
import os,pywinauto.application 
file = os.path.normpath("C:\Users\me\Desktop\image.jpg") 
.... 
+0

대부분의 Webdriver 사용자는 "파일 경로를 입력 요소로 전송"을 선택한 다음 "업로드/전송 버튼 클릭"을 찾습니다. 이거 해봤 니? 파일 업로드 관리자와 상호 작용하기가 쉽기 때문에 작업을 더 쉽게 할 수 있습니다. –

+0

이 솔루션에 대해 읽었지 만 나에게 해당되지 않는다고 생각합니다. 웹 응용 프로그램 내에서 버튼을 누르면 라이트 박스가 나타납니다.이 응용 프로그램은 Filepicker API를 사용하여 파일을 업로드하고 변환합니다. 특정 버튼에서 찾은 html은 다음과 같습니다. –

+0

답변

0

, 당신은 Webdriver 방법을 시도해야합니다. pywinauto이는 Win32 API를 사용하기 때문에, Windows 전용

import pywinauto 

pwa_app = pywinauto.application.Application() 
w_handle = pywinauto.findwindows.find_windows(title=u'Open', class_name='#32770')[0] 
window = pwa_app.window_(handle=w_handle) 
ctrl = window['Name'] 
ctrl.SetText(file) 
ctrl = window['OK'] 
ctrl.Click() 

이 sollution : pywinauto에 관해서는, 코드 5 월처럼 보인다.

+0

프로덕션 코드가 우분투에서 실행 되더라도 필자는 pywinauto 접근 방식을 시도합니다. –