在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不会安装到我的电脑上。所以,我希望有人可以说明如何发送预先确定的路径名,以便我可以上传照片。感谢任何帮助,谢谢!
答案 0 :(得分:5)
您不应使用<button>
元素,而应使用<input>
,因此请使用以下代码:
browser.find_element_by_xpath("//input[@type='file']").send_keys(filepath)