我是selenium的新手,我有一个脚本可以将文件上传到服务器。
在ide版本中说它上传文件,但当我将测试用例导出为python 2 / unittest / 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的文件上传框。
答案 0 :(得分:8)
您的代码非常适合我(我使用Firefox,Chrome驱动程序进行测试)
我怀疑的一件事是反斜杠(\
)过度逃避。
请尝试以下操作:
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")
答案 1 :(得分:2)
您是否尝试过这段代码:
driver.find_element_by_css_selector("input[type=\"file\"]").send_keys("C:\\Documents and Settings\\pcname\\Desktop\\ffdlt\\test.jpeg")
答案 2 :(得分:1)
如果我从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:{{ 3}})它们是有效的,你可以将文件上传到大多数服务器,它只是不起作用。
感谢您的帮助。
答案 3 :(得分:1)
这对我有用:
# 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()
答案 4 :(得分:0)
from pywinauto import Desktop
driver.find_element_by_id("start-upload-button-single").click()
app = Desktop()['Open'] # About `Open`, checkout upload Dialog title
app.wait('visible')
app.Edit.type_keys(R"C:\Documents and Settings\pcname\Desktop\ffdlt\test.jpeg", with_spaces=True)
app['Open'].click() # About `Open`, checkout upload Button name