>source

그들은 실제로 PGP 파일이지만 그다지 중요하다고 생각하지 않습니다.

업로드 및 파일 조작의 주요 소스로 Selenium 및 Glob을 사용하여 내 스크립트에 문제가 있는지 확실하지 않습니다. 나는 모든 파일을 변수로 설정했으며 send.keys를 정확하게 사용했지만 모든 파일이 아닌 모든 파일의 첫 번째 인스턴스를 선택하는 이유를 잘 모르겠습니다.

예를 들어 이들 모두가 가리키는 디렉토리 폴더에는 2 개 또는 3 개의 "ack"파일이있을 수 있습니다. 이 코드를 실행하면 첫 번째 코드 만 선택하고 다른 코드는 놓치게됩니다.

   # this imports all the packages that we need to run our script
import glob
import datetime
import selenium
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
import time
# this creates the format for the name convention of today
today = datetime.datetime.today().strftime("%Y%m%d")
# these are the files that will be uploaded to Chase
print("The following files have been found and uploaded to Chase:")
b3input = glob.glob(r'S:\Chase\up\b3pinput_MOORCL_' + today + '*.pgp')
pmntr = glob.glob(r'S:\Chase\up\b3pmntr_MOORCL_' + today + '*.pgp')
ack = glob.glob(r'S:\Chase\up\ack_b3ptran_LIT_MOORCL_' + today + '*.pgp')
# the following file variable is for redundancy (to pick up any file that is a PGP File)
for pgpFiles in glob.glob(r'S:\Chase\up\*.pgp'):
    print(pgpFiles)
# this gives the location of our chrome driver
driver_path = r'C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
# this tells the driver to go to the following website
driver.get('https://website.com')
delay = 10 # seconds
try:
    # Waits for 10 seconds looking for the user name text area
    login_box = WebDriverWait(driver, delay).until(
        EC.presence_of_element_located((By.ID, "userIDInput"))
    )
    login_box.send_keys('username')
    # Waits for 10 seconds looking for the password text area
    password_box = WebDriverWait(driver, delay).until(
        EC.presence_of_element_located((By.ID, "passwordInput"))
    )
    password_box.send_keys('password')
    login_button = driver.find_element_by_id('loginButon')
    login_button.click()
    chase_ToJPM = driver.get('https://website.com/To_JPMC')
    #upload_files = driver.find_element_by_id('allFiles_actions::upload')
    #upload_files.click()
    upload_files = WebDriverWait(driver, 30).until(
        EC.presence_of_element_located((By.ID, "allFiles_actions::upload"))
    )
    #upload_files.send_keys(b3input)
    #upload_files.send_keys(pmntr)
    #upload_files.send_keys(ack)
    upload_files.send_keys(pgpFiles)
    time.sleep(7)
    driver.quit()
  
except TimeoutError:
    print("Loading took too much time!")

  • 답변 # 1

    다음 코드 줄을 사용하여 여러 파일을 업로드 할 수 있습니다.

    uploadElement.send_keys("S:\Chase\up\abc.pgp \n S:\Chase\up\pqr.pgp \n S:\Chase\up\xyz.pgp");
    
    

    <시간 /> 참고 문헌

    다음에서 몇 가지 관련 세부 문서를 찾을 수 있습니다.

    셀레늄 웹 드라이버와 함께 Windows 파일 탐색기를 사용하여 많은 파일을 선택하는 방법

관련 자료

  • 이전 email - gcp 오류보고 - 소유자의 이메일 알림
  • 다음 reactjs - React Hook을 사용하여 React Native에서 TextInput으로 객체 배열의 특정 문자열을 어떻게 변경할 수 있습니까?