Python Selenium driver.execute_script WebDriverException:消息:未知错误:调用函数结果缺少'value'

时间:2018-03-22 19:17:17

标签: python selenium selenium-webdriver webdriver selenium-chromedriver

这实际上是unknown error: call function result missing 'value' for Selenium Send Keys even after chromedriver upgrade上的主题 但我想我的声誉不够高,无法参与(跛脚)。

我收到了错误:

WebDriverException: Message: unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.162)
  (Driver info: chromedriver=2.33.506106 
  platform=Mac OS X 10.13.3 x86_64)
运行此行时

driver.execute_script('window.scrollTo(0, %s)' % scroll_to)

我更新了,除了那个错误之外的其他所有内容仍然会弹出,但是在引发错误之前代码实际执行了,所以简单地传递异常允许我完成我的目标,有点草率所以如果我能做到的话它会很酷错误消失了,但这现在有效:

driver.get('https://www.azcentral.com/search/trump/')
page_height = int(driver.get_window_size()['height'])
scroll_to = 0
start_time = time.time()
wait = 90

while True:

    scroll_to += page_height

    try:

        driver.execute_script('window.scrollTo(0, %s)' % scroll_to)

    except:

        time.sleep(1)
        pass

    end_time = time.time()
    uptime = timedelta(seconds=int(end_time - start_time))

    if uptime > timedelta(seconds=wait):

        break

2 个答案:

答案 0 :(得分:3)

错误说明了一切:

WebDriverException: Message: unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.162)
  (Driver info: chromedriver=2.33.506106 

您的主要问题是您使用的二进制文件之间的版本兼容性,如下所示:

  • 您正在使用 chromedriver = 2.33
  • chromedriver=2.33的发行说明明确提及以下内容:
  

支持 Chrome v60-62

  • 您正在使用 chrome = 65.0
  • ChromeDriver v2.37的发行说明明确提及以下内容:
  

支持 Chrome v64-66

  • 我们不知道您的 Selenium客户端版本。

因此 ChromeDriver 版本( v2.33 )与 Chrome浏览器版本( v65)之间存在明显的不匹配。 0

解决方案

  • Selenium 升级到当前级别Version 3.11.0
  • ChromeDriver 升级到当前ChromeDriver v2.37级别。
  • Chrome v64.x-66.x 级别之间保留 Chrome 版本。 (as per ChromeDriver v2.37 release notes
  • 通过 IDE 清理您的项目工作区仅使用所需的依赖项重建项目
  • 使用CCleaner工具清除执行测试套件之前和之后的所有操作系统杂务。
  • 如果您的基本 Web客户端版本太旧,请通过Revo Uninstaller将其卸载并安装最新的GA和已发布的 Web客户端版本。
  • 执行@Test

答案 1 :(得分:2)

我认为你可以使用这样的代码:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

希望它可以帮到你!