使用Python和Selenium通过ajax表单上传图像

时间:2013-10-09 11:47:20

标签: python ajax facebook selenium

我正在努力熟悉硒。我决定尝试使用facebook,并使用selenium填写我的个人资料。但他们使用了太多ajax。实现我的家乡等并不是很复杂,但我真的不知道如何上传图像。他们有一个ajax表单,可以在上传和网络摄像头照片之间进行选择。然后我需要以某种方式处理上传对话框...任何想法?

1 个答案:

答案 0 :(得分:1)

好吧......这比我想象的容易得多。我需要的只是等到加载文件输入的ajax框然后只有send_keys到它的图像位置。

        try:
            self.driver.find_element(By.CLASS_NAME, u"sx_53a53c").click()
            WebDriverWait(self.driver, 10).until(ec.presence_of_element_located((By.CLASS_NAME, u"fbTimelineSelectorFileInput")))
            WebDriverWait(self.driver, 10).until(ec.presence_of_element_located((By.NAME, u"pic")))
            self.driver.find_element(By.NAME, u"pic").send_keys("~/Downloads/z_ed6e1de4.jpg")
        except NoSuchElementException as nse:
            print 'Error. Element not found! '.format(nse.message)
        except:
            print "Something went wrong."
            import traceback
            type_, value_, trace_ = sys.exc_info()
            print traceback.format_tb(trace_)