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