首页 > 解决方案 > 使用 selenium 上传文件时出错

问题描述

这是我单击“确定”时出现的错误,我正在尝试在 python 中使用 selenium 自动执行过程,因此其中一个步骤是上传的文件可以在这里看到在 selenium 尝试上传文件之前上传以下 oad 文件是输入元素:

<input ct="FU" lsdata="{1:'Content',7:'ONSUBMIT',8:true}" lsevents="{Change:[{ResponseData:'delta',EnqueueCardinality:'single'},{}]}" id="WD039B" name="WD039B" type="file" tabindex="0" ti="0" class="lsFileupload__input urBorderBox urUpld" size="0" title="Content">

当 selenium 上传文件并单击“确定”时,我收到错误消息,例如尚未选择文件,但是当 selenium 尝试在上传后单击“确定”时,我可以看到下面的“选择文件”中的文件名是相同的输入元素:

<input ct="FU" lsdata="{0:'ERROR',1:'Content',7:'ONSUBMIT',8:true}" lsevents="{Change:[{ResponseData:'delta',EnqueueCardinality:'single'},{}]}" id="WD030D" name="WD030D" type="file" tabindex="0" ti="0" class="lsFileupload__input urBorderBox urUpldInv" size="0" title="Content">

当我在上传相同元素后手动尝试上传文件时,如下所示:

<input ct="FU" lsdata="{1:'Content',7:'ONSUBMIT',8:true}" lsevents="{Change:[{ResponseData:'delta',EnqueueCardinality:'single'},{}]}" id="WD0302" name="WD0302" type="file" tabindex="0" ti="0" class="lsFileupload__input urBorderBox urUpld" size="0" title="Content" style="background-image: none;">

我正在使用以下硒代码上传文件:

upload_element=WebDriverWait(driver,v[3]/table/tbody/tr/td/div/div[1]/table/tbody/tr[2]/td/div/div/div/div/table/tbody/tr[1]/td[2]/form/input")))
time.sleep(5)

#driver.execute_script("arguments[0].removeAttribute('style')", upload_element)
time.sleep(5)

#To upload the file
upload_element.send_keys("C:\\Users\\e0481737\\.PyCharmCE2018.2\\config\\scratches\\Help File.pdf")
driver.execute_script("arguments[0].style.display = 'background-image: none;'; return arguments[0];", upload_element)
# until this point I am successful but when I click on "OK" it says that file is not chosen
time.sleep(5)

# to click on "OK" button
element = WebDriverWait(driver, wait_time).until(
EC.element_to_be_clickable((By.XPATH, "/html/body/table/tbody/tr/td/div/div[1]/div/div[4]/div/table/tbody/tr/td[3]/table/tbody/tr/td[1]/div")))
time.sleep(5)
element.click() 

标签: pythonseleniumselenium-webdriverfile-upload

解决方案


推荐阅读