-
Selenium을 사용하여 웹사이트에 파일을 업로드하는 파이썬 script입니다카테고리 없음 2020. 8. 20. 21:45
질문
웹 스크래핑을 수행하는이 웹 'https://convertir-pdf.com/'에 파일을 업로드하는 중입니다. clase 작업을 위해 Python notebok을 사용했지만 업로드하거나 button을 클릭하기 위해 html의 올바른 부분을 찾을 수 없습니다. 내 코드는 다음과 같습니다.
from selenium import webdriver import os chrome_path = "D:\Descargas\chromedriver_win32\chromedriver.exe" driver = webdriver.Chrome(chrome_path) driver.get('https://avi-a-mp4.convertir-pdf.com/') driver.maximize_window() driver.switch_to_frame(0) driver.find_element_by_id("download").send_keys(mypath+ '\\' + onlyfiles[7]) #driver.find_element_by_id('single-upload-form').send_keys(mypath+ '\\' + onlyfiles[7]) #driver.find_element_by_id('single-upload-form').click()
그리고 내가 항상 가지고있는 오류는 다음과 같습니다.
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="download"]"} (Session info: chrome=81.0.4044.92)
답변1
아래 xpath를 사용하여 문제를 해결하십시오.
wait = WebDriverWait(driver, 10) wait.until(EC.element_to_be_clickable((By.XPATH, "//span[@id='resumable-browse']"))).click()
참고 : 아래 가져오기를 솔루션에 추가하세요.
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait
업데이트 된 솔루션 :
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait driver = webdriver.Chrome(executable_path=r"C:\New folder\chromedriver.exe") driver.get("https://avi-a-mp4.convertir-pdf.com/") driver.maximize_window() wait = WebDriverWait(driver, 10) wait.until(EC.element_to_be_clickable((By.XPATH, "//span[@id='resumable-browse']"))).click()
산출: