硒的webdriver上传文件硒的webdriver上传文件(selenium webdriver

2019-05-12 05:38发布

我是新来硒,我将文件上载到服务器的脚本。

在IDE版本那种说话吧上传文件,但是当我出口测试情况下,蟒蛇2 /单元测试/ webdriver的不上传..

它不给我任何错误,只是没有把它上传...

该Python脚本是:

driver.find_element_by_id("start-upload-button-single").click()
driver.find_element_by_css_selector("input[type=\"file\"]").clear()
driver.find_element_by_css_selector("input[type=\"file\"]").send_keys("C:\\\\Documents and Settings\\\\pcname\\\\Desktop\\\\ffdlt\\\\test.jpeg")

我搜索的解决方案,但我还没有发现任何除非AutoIt的或AutoHotkey的整合它...

第一行打开文件的Firefox上传框。

Answer 1:

您的代码工作完美的我(我用Firefox测试,Chrome的驱动程序)

有一件事我supect过度反斜线( \ )逃逸。

尝试以下操作:

driver.find_element_by_id("start-upload-button-single").click()
driver.find_element_by_css_selector('input[type="file"]').clear()
driver.find_element_by_css_selector('input[type="file"]').send_keys("C:\\Documents and Settings\\pcname\\Desktop\\ffdlt\\test.jpeg")

要么

driver.find_element_by_id("start-upload-button-single").click()
driver.find_element_by_css_selector('input[type="file"]').clear()
driver.find_element_by_css_selector('input[type="file"]').send_keys(r"C:\Documents and Settings\pcname\Desktop\ffdlt\test.jpeg")


Answer 2:

你有没有试过这种单一的代码:

driver.find_element_by_css_selector("input[type=\"file\"]").send_keys("C:\\Documents and Settings\\pcname\\Desktop\\ffdlt\\test.jpeg")


Answer 3:

如果我运行从它工作得很好的IDE以下行,它上传文件。

Command | Target                               | Value
_____________________________________________________________
open    | /upload                              |
click   | id=start-upload-button-single        |
type    | css=input[type="file"]               | C:\\Documents and Settings\\cristian\\Desktop\\ffdl\\MyWork.avi

但是,当我将其导出为Python的webdriver它只是不上传,我已经尝试了一切。

最后的办法是让它在AutoHotkey工作,但我希望它的工作。

我所做的测试,我发现用/在其他网站,看看问题是否只在我试图让上传(YouTube)的网站的解决方案,这些解决方案的工作(EX: HTTP://开发.sencha.com /部署/ EXT-4.0.0 /例子/表格/文件upload.html )它们是有效的,你可以将文件上传到大多数服务器,它只是不进行这项工作。

谢谢您的帮助。



Answer 4:

这对我的作品:

# Upload file
elem = driver.find_element_by_name("File")
elem.send_keys(r"D:\test\testfile04.txt")
elem = driver.find_element_by_partial_link_text("Upload File")
elem.click()


文章来源: selenium webdriver upload file