鉴于我比较坑,写自动化测试脚本的时候总是会遇到各种各样的出错,报错信息有些可以看懂有些也迷迷糊糊只好上网查询,所以决定在这里开一篇博客给记录一下,遇到了出错会进行不定期更新。
-------------------------------------------------------------------------------------------------------
WebDriverException: Message: unknown error: call function result missing 'value'
这个报错是在一个input表单填值的时候,那个value不知道为什么报错,具体报错信息如下:
E
======================================================================
ERROR: test_youdao (__main__.MyTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\zhangchao\Documents\Myfloder_Data\Python+Selenium\TryUnittest\test_case\test_youdao.py", line 14, in test_youdao
driver.find_element_by_id("translateContent").send_keys("cat")
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 320, in send_keys
self._execute(Command.SEND_KEYS_TO_ELEMENT, {'value': keys_to_typing(value)})
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 461, in _execute
return self._parent.execute(command, params)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.181)
(Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 10.0.16299 x86_64)
----------------------------------------------------------------------
Ran 1 test in 23.927s
FAILED (errors=1)
[Finished in 36.4s with exit code 1]
我运行用的是谷歌的驱动,我换火狐运行,并没有报错,说明脚本本身没有问题,那么就肯定是驱动的原因了,基本可以确定是由于驱动和浏览器版本不匹配导致的,
应该是我的谷歌浏览器设置了自动更新,什么时候自己偷偷升级了~坑了我一把。
只需要找到和当前浏览器版本的驱动进行替换就好了,再次谷歌运行,hin流畅,没有报错啦,oh~Yeah~
另外关于谷歌驱动和和浏览器的版本对照及下载可以在这里进行查找比对与下载:
请叫我雷锋同志,传送门开启:http://chromedriver.storage.googleapis.com/index.html
IndentationError: unindent does not match any outer indentation level
IndentationError: unexpected indent
出现这两个报错信息一般是由于报错的代码段里面,没有对齐。
有的时候找到提示错误的代码段,咋一看明明是对齐了的,这个时候很有可能是空格和Tab的区别,或者是只差一个小空格,这些都是不容易发现的……
解决办法是,在编译器中选中代码段,就可以清楚地看到空着的地方空格和tab的数量了,如下所示:
从上面的截图来看是看不出有问题的,选中后可以看到,·表示的是空格,下面15行那个——则是tab制表符,在python中这两个是不允许混用的,既然看出问题来了那就调整替换一下就解决啦~
如果所有的编译器选中后没有这个效果,可以将代码段复制到Notepad++中,菜单栏中选择 视图-->显示符号-->显示空格和制表符 这样也是和上面在编译器选中后一样的。