Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61705
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 202
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-26 15:34
个人简介

爱技术的大学狗

文章分类

全部博文(8)

文章存档

2014年(8)

我的朋友

分类: Python/Ruby

2014-05-23 23:57:07

今天玩了一下python 下的selenium,感觉蛮好玩的。试试看能不能模拟新浪微博登录。
模仿了一下官网给的例子试了一下,代码如下:


点击(此处)折叠或打开

  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys

  3. driver = webdriver.Firefox()
  4. driver.get("")

  5. elem=driver.find_element_by_name("username")
  6. elem.send_keys("name")

  7. elem2 = driver.find_element_by_name("password")
  8. elem2.send_keys("passwd")
  9. elem2.send_keys(Keys.RETURN)


结果发现出现如下错误:
selenium.common.exceptions.ElementNotVisibleException: Message: u'Element is not currently visible and so may not be interacted with' ; Stacktrace: 
    at fxdriver.preconditions.visible (file:///tmp/tmpoOAZdm/extensions/fxdriver@googlecode.com/components/command_processor.js:8791)
    at DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmpoOAZdm/extensions/fxdriver@googlecode.com/components/command_processor.js:11438)
    at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmpoOAZdm/extensions/fxdriver@googlecode.com/components/command_processor.js:11455)
    at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmpoOAZdm/extensions/fxdriver@googlecode.com/components/command_processor.js:11460)
    at DelayedCommand.prototype.execute/< (file:///tmp/tmpoOAZdm/extensions/fxdriver@googlecode.com/components/command_processor.js:11402) 

原因:

  1. elem=driver.find_element_by_name("username")
这行代码得到的elem并不是唯一的,
改成如下就好:

点击(此处)折叠或打开

  1. elem = driver.find_element_by_xpath("//div[@class='W_login_form']/div[@class='info_list']/div/input")




阅读(1858) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~