使用Python和Selenium将照片上传到Craigslist

时间:2016-03-04 20:00:34

标签: selenium python-3.5 craigslist

在windows10上使用python3,selenium和firefox: 这个程序很简单。它会直接跳到craigslists并发布一个新的列表'页面,上传多张照片,然后提交。我遇到的问题是我无法通过selenium控制对话框导航到正确的文件。

browser = webdriver.Firefox()
browser.get('https://post.craigslist.org/k/lPbhT6Lh5RGBKb-uS1zr0g/g2NjN?lang=en&cc=us&s=editimage')
#opens to craigslists 'Upload/Edit Images' page

add_imgs_btn = browser.find_element_by_id('plupload')
#find the 'add images' button

add_imgs_btn.click()
#clicks the button which opens the dialog box, which is not operable from selenium
add_imgs_btn.send_keys(filepath)

我一直在做一些阅读,我得到了我需要使用send_keys()到输入文件的要点,但我仍然是如此新的selenium和编程一般,我不完全理解这个概念。我的想法是使用AutoIt的SendKeys,但我甚至无法弄清楚为什么AutoIt不会安装到我的电脑上。所以,我希望有人可以说明如何发送预先确定的路径名​​,以便我可以上传照片。感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:5)

您不应使用<button>元素,而应使用<input>,因此请使用以下代码:

browser.find_element_by_xpath("//input[@type='file']").send_‌​keys(filepath)