selenium报错信息归纳总结

本文记录了一个在使用Python和Selenium进行自动化测试时遇到的WebDriverException错误,并详细解释了解决过程,包括确认浏览器与驱动版本匹配的方法,以及代码缩进错误的排查技巧。

    鉴于我比较坑,写自动化测试脚本的时候总是会遇到各种各样的出错,报错信息有些可以看懂有些也迷迷糊糊只好上网查询,所以决定在这里开一篇博客给记录一下,遇到了出错会进行不定期更新。

-------------------------------------------------------------------------------------------------------

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++中,菜单栏中选择 视图-->显示符号-->显示空格和制表符 这样也是和上面在编译器选中后一样的。



引用提供了关于安装python和selenium的步骤和错误信息。在安装selenium时,您遇到了pip的错误。要解决这个问题,您可以尝试以下方法: 1. 确保您使用的是最新版本的pip。您可以使用以下命令升级pip: `pip install --upgrade pip` 2. 检查您的网络连接是否正常,并尝试使用以下命令安装selenium: `pip install selenium` 3. 如果您的网络连接存在问题,您可以尝试使用本地安装包进行安装。您可以在selenium官方网站上下载适用于您的操作系统的安装包,并使用以下命令进行安装: `pip install /path/to/selenium-3.12.0.tar.gz` 引用提供了关于Selenium元素定位和点击报错信息。您遇到了ElementClickInterceptedException错误。为了解决这个问题,您可以尝试以下两种方式: 1. 使用execute_script方法执行JavaScript代码来点击元素: ```python element = driver.find_element_by_xpath("表达式") driver.execute_script("arguments[0].click();", element) ``` 2. 使用ActionChains类来模拟鼠标操作来点击元素: ```python from selenium.webdriver.common.action_chains import ActionChains element = driver.find_element_by_xpath("表达式") ActionChains(driver).move_to_element(element).click(element).perform() ``` 引用提供了关于chromedriver路径问题的解决方案。您遇到了'chromedriver' executable needs to be in PATH错误。为了解决这个问题,您可以按照以下步骤进行操作: 1. 访问http://chromedriver.storage.googleapis.com/index.html,找到与您的Chrome浏览器版本相对应的chromedriver.exe下载链接,并下载对应版本的chromedriver.exe。 2. 解压下载的文件,并将chromedriver.exe文件放置在Chrome浏览器的安装目录下。 3. 将chromedriver所在目录添加到系统的PATH环境变量中。 以下是示例代码,展示了如何使用已安装的chromedriver: ```python from selenium import webdriver url = "http://www.baidu.com" browser = webdriver.Chrome(executable_path="C:\Users\12717\AppData\Local\Google\Chrome\Application\chromedriver.exe") browser.get(url) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值