我想熟悉硒。我决定尝试与facebook
合作,并通过selenium
完成我的个人资料。但他们使用太多ajax
。完成我的家乡等不是很复杂,但我真的不知道如何上传图像。他们有一个ajax
表单可供选择上传和网络摄像头照片。然后我需要以某种方式处理上传对话框......任何想法?使用Python和Selenium上传图像通过ajax形式
0
A
回答
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_)
+0
很高兴我的建议很有帮助。 – alexvassel
+0
@alexvassel yup :) thanx! –
相关问题
- 1. 通过Ajax形式上传图像
- 2. 上传图像通过AJAX
- 3. 如何通过形式上传图片使用图形API
- 4. 图像不通过ajax上传
- 5. Ajax和MVC 5 - 通过ajax上传图像二进制
- 6. 使用ajax上传图像
- 7. 使用Ajax上传图像?
- 8. 使用codeigniter和ajax上传图像
- 9. 使用Ajax,jQuery和Codeigniter上传图像
- 10. 使用ajax上传图像和数据
- 11. 拖放图像,通过ajax形式存储图像ID
- 12. 形式通过Ajax
- 13. ajax通过codeigniter传递两种形式
- 14. 图像不是通过Django的形式上传
- 15. 通过拖放的形式上传jquery图像
- 16. 上传的图像通过tweepy从Django的形式
- 17. CakePHP的形式传上传文件通过Ajax控制器
- 18. 上传图像通过jquery/ajax只有图像路径
- 19. 使用python上传图像
- 20. Codeigniter:上传图像通过Ajax和存储在分区
- 21. 上传图像到backblaze通过使用python的API
- 22. 使用python请求通过表单数据上传图像
- 23. 通过FileAPI和PHP上传图像
- 24. 通过ftp上传图像
- 25. 上传图像通过simpleimage.php
- 26. 上传图像通过URL
- 27. 在图像上画线和矩形通过鼠标使用jQuery
- 28. 渲染通过AJAX嵌套属性(通过jQuery的文件上传图片上传)编辑形式
- 29. Ajax图像上传
- 30. 使用PHP通过ajax上传文件
http://stackoverflow.com/questions/8665072/how-to-upload-file-picture-with-selenium-python? – alexvassel
它很相似但不一样......在那里他们只是指定图像的路径并点击上传。你可以去脸书,看看他们如何处理它。这是一个Ajax形式,然后我得到一个对话框来选择一个文件...但是,thanx,现在我有一个起点:) –
正如我所看到的,页面源代码中有一个'fbTimelineFileForm'形式。可以用javascript提交。 – alexvassel