【问题标题】:Python Selenium driver.execute_script WebDriverException: Message: unknown error: call function result missing 'value'Python Selenium driver.execute_script WebDriverException:消息:未知错误:调用函数结果缺少“值”
【发布时间】:2018-09-01 08:51:03
【问题描述】:

这实际上是针对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

【问题讨论】:

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


    【解决方案1】:

    错误说明了一切:

    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 版本保持在 Chrome v64.x-66.x 级别之间。 (as per ChromeDriver v2.37 release notes)
    • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
    • 使用CCleaner 工具在执行测试套件之前和之后清除所有操作系统杂务。
    • 如果您的基础 Web Client 版本太旧,请通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web Client
    • 执行您的@Test

    【讨论】:

      【解决方案2】:

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

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

      希望对你有帮助!

      【讨论】:

      • 运行该行会产生同样的错误 - “WebDriverException: Message: unknown error: call function result missing 'value'。”
      猜你喜欢
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 2021-02-10
      • 2018-07-14
      相关资源
      最近更新 更多