是一个 python 脚本,用于使用 selenium 将文件上传到网站

Is a python script to upload a file to website with selenium

我想上传一个文件到这个网站 'https://convertir-pdf.com/' 做网页抓取用 python notebok 做一个 clase 工作,但我找不到 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)

使用下面的 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()

输出: