Selenium Python-通过Windows上载文件
最后一项任务是将照片上传到网站 当我点击上传照片时,窗口会弹出,要求用户选择图片 我设法点击上传,窗口打开了Selenium Python-通过Windows上载文件,python,windows,selenium,selenium-webdriver,Python,Windows,Selenium,Selenium Webdriver,最后一项任务是将照片上传到网站 当我点击上传照片时,窗口会弹出,要求用户选择图片 我设法点击上传,窗口打开了 try: myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/main/div[2]/div/div/div[2]/section[1]/div/div[2]/div/label/div/div[1]/div/div'))
try:
myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/main/div[2]/div/div/div[2]/section[1]/div/div[2]/div/label/div/div[1]/div/div'))) #.click(
myElem.click()
myElem.SendKeys("path")
except TimeoutException:
errorDuringFill = True
也试过和
我没能完成它
使用:
webdriver.Firefox()
编辑HTML:
<div class="listing-editor__box-content">
<input id="img-file-input" type="file" multiple="multiple" accept=".png, .jpg, .jpeg" class="listing-editor__input-img-files" aria-required="true" aria-invalid="false">
<div class="btn btn--large btn--wide bg--dark-gray">
<div class="d--fl jc--c ai--c">
<i class="l-icon cloud m--r--2"></i>
<div class="tc--white">UPLOAD PHOTOS</div>
</div>
</div>
<div class="tc--lg">or drag them in</div>
</div>
上传照片
或者把他们拖进来
您需要使用发送键将文件发送到
标记。不需要使用pywinauto。您可以按如下方式进行操作:
try:
myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/main/div[2]/div/div/div[2]/section[1]/div/div[2]/div/label/div/div[1]/div/div')))
myElem.click()
driver.find_element_by_xpath('//input[@id='img-file-input']').SendKeys("filePath")
except TimeoutException:
errorDuringFill = True
使用ID
代替absolutexpath
myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, 'img-file-input')))
myElem.send_keys("path")
请分享上传的HTMLbutton@Muzzamil穆扎米尔补充道,还有一个问题。我可以像这样推送多张图片吗?@ProgramerName是的,通过多次调用此方法,我可以看到。我以为在发钥匙的时候放了一堆paths@ProgramerAnel啊哈,我需要检查它是否以某种方式使用sendkey或java中的JSK,它的工作方式类似于(“Path1\n path2”)。如果要检查,可以在python中尝试在文件路径之间使用\n。