这个是没问题的代码:用来打开谷歌搜索cheese并退出

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0 # Create a new instance of the Firefox driver
driver = webdriver.Firefox() # go to the google home page
driver.get("http://www.google.com") # the page is ajaxy so the title is originally this:
print driver.title # find the element that's name attribute is q (the google search box)
inputElement = driver.find_element_by_name("q") # type in the search
inputElement.send_keys("cheese!") # submit the form (although google automatically searches now without submitting)
inputElement.submit() try:
# we have to wait for the page to refresh, the last thing that seems to be updated is the title
WebDriverWait(driver, 10).until(EC.title_contains("cheese!")) # You should see "cheese! - Google Search"
print driver.title finally:
driver.quit()

  

有问题的代码:打开百度首页 搜索并退出

from selenium import webdriver
driver=webdriver.Firefox()
driver.get("http://www.baidu.com")
element = driver.find_element_by_id("kw1")
element.send_keys('test') #这里报错 driver.close()

  错误:AttributeError: 'WebElement' object has no attribute 'send_keys'

看提示sendKeys 没有导入包,

目前代码:

from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.common.action_chains import ActionChains driver=webdriver.Firefox()
driver.get("http://www.baidu.com")
ele = driver.find_element_by_name("wd")
print (ele)
ele.send_keys("test") btn = driver.findElement(By.id("su1"));
btn.click() driver.close()

报错提示:

Traceback (most recent call last):
File "D:\pcode\24.py", line 9, in <module>
ele.send_keys("test")
File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",
line 293, in send_keys
self._execute(Command.SEND_KEYS_TO_ELEMENT, {'value': typing})
File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py",
line 370, in _execute
return self._parent.execute(command, params)
File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 166, in execute
self.error_handler.check_response(response)
File "D:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py"
, line 164, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: u'Element is not
currently visible and so may not be interacted with' ; Stacktrace:

正确代码如下:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
import time # Create a new instance of the Firefox driver
browser = webdriver.Firefox() # open baidu.com
browser.get("http://www.baidu.com") # sleep 2 secs
time.sleep(2) #clean the enter text
browser.find_element_by_id("kw1").clear() #enter something
browser.find_element_by_id("kw1").send_keys("selenium") #submit
browser.find_element_by_id("su1").click() # sleep 2 secs
time.sleep(2) try:
# we have to wait for the page to refresh, the last thing that seems to be updated is the title
WebDriverWait(browser, 10).until(EC.title_contains("selenium")) # You should see "selenium - 百度搜索"
print browser.title finally:
browser.quit()

  

另外一种写法:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
import time # Create a new instance of the Firefox driver
browser = webdriver.Firefox() # open baidu.com
browser.get("http://www.baidu.com") # sleep 2 secs
time.sleep(3) #clean the enter text
browser.find_element_by_id("kw1").clear() #enter something
browser.find_element_by_id("kw1").send_keys("selenium") #submit
browser.find_element_by_id("su1").click() # sleep 2 secs
time.sleep(2) #wait for the page
while True:
#if fresh
contains = browser.title.find("selenium") >= 0
if (contains):
break
else:
sleep(1)
#quit
browser.quit()

  

AttributeError: 'WebElement' object has no attribute 'send_keys'的更多相关文章

  1. 关于AttributeError: 'NoneType' object has no attribute 'send_keys'

    在学web自动化测试时,通过PO模型将特定页面的一些元素及元素操作放在特定页面模块中, 然后提取公共的部分, 如元素等待WebDriverWait, 元素操作send_keys, click, 获取元 ...

  2. Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法

    最近在编写Python脚本过程中遇到一个问题比较奇怪:Python脚本完全正常没问题,但执行总报错"AttributeError: 'module' object has no attrib ...

  3. AttributeError: 'list' object has no attribute 'write_pdf'

    我在可视化决策树,运行以下代码时报错:AttributeError: 'list' object has no attribute 'write_pdf' 我使用的是python3.4 from sk ...

  4. attributeError:'module' object has no attribute ** 解决办法

    写了一个小脚本,执行的时候报错: Traceback (most recent call last): File "F:/test/qrcode.py", line 109, in ...

  5. AttributeError: 'module' object has no attribute 'TornadoAsyncNotifier'

    /*************************************************************************** * AttributeError: 'modu ...

  6. AttributeError: 'dict_values' object has no attribute 'translate'

    /***************************************************************************************** * Attribu ...

  7. python3 AttributeError: 'NoneType' object has no attribute 'split'

    from wsgiref.simple_server import make_server def RunServer(environ, start_response): start_response ...

  8. 对于AttributeError: 'Flask' object has no attribute 'cli'的解决办法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 环境flask-script2.0.5.flask0.10.1 运行官方文档sample 出现问题 c:\kk\flask\examples\fl ...

  9. AttributeError: 'module' object has no attribute 'Thread'

    $ python thread.py starting at: 2015-08-05 00:24:24Traceback (most recent call last):  File "th ...

随机推荐

  1. 尚硅谷redis学习2-redis的安装和HelloWorld

    Reids: remote dictionary server redis特点:支持持久化,支持复杂数据类型,支持备份 下载: 解压: 执行make, make install 可能会需要安装make ...

  2. Haskell语言学习笔记(92)HXT

    HXT The Haskell XML Toolbox (hxt) 是一个解析 XML 的库. $ cabal install hxt Installed hxt-9.3.1.16 Prelude&g ...

  3. ReactiveX 学习笔记(5)合并数据流

    Combining Observables 本文的主题为合并 Observable 的操作符. 这里的 Observable 实质上是可观察的数据流. RxJava操作符(四)Combining An ...

  4. SQL Server 利用Profiler观察执行计划是否重用时SP:Cachemiss,SP:CacheInsert以及SP:CacheHit的含义

    本文出处:http://www.cnblogs.com/wy123/p/6913055.html 执行计划的缓存与重用 在通过SQL Profile观察一个SQL语句或者存储过程是否有可用的缓存执行计 ...

  5. windows中 git 命令使用记录

    建议国内开发安装淘宝npm镜像cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 或者每次执行安装时 npm ins ...

  6. .Net中使用ODP.net访问Oracle数据库

    ODP.Net是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用. .net framework4中会将 ...

  7. Applese的回文串-dfs

    链接:https://ac.nowcoder.com/acm/contest/330/I来源:牛客网 题目描述 自从 Applese 学会了字符串之后,精通各种字符串算法,比如……判断一个字符串是不是 ...

  8. php输出textarea数据(入库没有处理的)

    str_replace("\r\n","<br />",$xmactivity['xmdetail']) 导出excel换行方法 str_repla ...

  9. JDBC事物的处理

    JDBC事物的处理: 概念:事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令: start transaction  开启事务 Rollback   ...

  10. polyfill

    [polyfill] 在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而 ...