Python 2.7 未知错误:调用函数结果丢失';价值';对于Selenium,即使在chromedriver升级后也会发送密钥

Python 2.7 未知错误:调用函数结果丢失';价值';对于Selenium,即使在chromedriver升级后也会发送密钥,python-2.7,google-chrome,selenium,selenium-webdriver,webdriver,Python 2.7,Google Chrome,Selenium,Selenium Webdriver,Webdriver,我在发送密钥时遇到以下错误 结果消息: System.InvalidOperationException : unknown error: call function result missing 'value' (Session info: chrome=65.0.3325.146) (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT

我在发送密钥时遇到以下错误

结果消息:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)
我已经将chrome驱动程序更新为2.36,但我的代码搜索还是2.33


有什么想法吗?

我遇到了同样的错误,请下载最新的ChromeDriver版本和/或更新chrome浏览器版本,它将正常工作:)


在将Google Chrome浏览器更新到65.0.3325.146版(官方版本)(64位)之后,我也遇到了同样的错误 将值发送到输入字段时,出现以下错误消息

selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'
使用Chromedriver 2.32和Google Chrome 65.0

当我做了一些相同的研究时,我发现了谷歌chrome v65的最新变更日志,它帮助我解决了这个问题

解决方案:

  • 将Google Chrome更新至最新稳定版本(就我而言,是2018年3月9日的v65)
  • 下载并配置最新的chromedriver(v2.36)。 要配置chromedriver(在Ubuntu上),请遵循以下步骤

  • 解压缩下载的zip文件
  • 将提取的chromedriver文件复制到/usr/local/bin或通常存储可执行二进制文件的位置
  • 将相同的路径(放置chromedriver文件的位置)添加到环境变量path
导出路径=$PATH:/usr/local/bin

  • 要测试安装,请重新启动终端并键入此命令
  • 彩色驱动程序-版本

    它将显示您刚刚安装的chromedriver版本

    注意:如果chromedriver已经安装和配置,则只需替换现有的驱动程序文件,如果您不知道chromedriver二进制文件已经存储在哪里,则尝试使用以下命令查找该文件

     sudo find -H / -type f -iname chromedriver
    

    这是因为chrome浏览器版本从64.xx更新到65.xx

    现在您有两个选项可以成功运行测试

  • 将您的chrome浏览器降级到以前的版本,并使用您现在拥有的旧chromedriver

  • 使用更新的Chrome浏览器将Chromedriver升级至2.36版本

    访问并下载新的chromedriver

  • 选项2更好。

    我正在Windows环境中运行带Selenium的Gragotor(webdriver manager),我必须执行以下操作:

  • webdriver管理器更新--versions.chrome=“2.36”
    (这将新的Chromedriver下载到正确的路径,但未在量角器中启用。)
  • 编辑
    %userprofile%\AppData\Roaming\npm\node\u modules\dragrator\config.json
    ,并将
    chromedriver
    值从
    2.32
    更改为
    2.36
  • %userprofile%\AppData\Roaming\npm\node\u modules\dragrator\selenium
    中删除我的旧
    chromedriver\u 2.32.exe
    ,以便更好地测量(不确定是否需要)
  • 或:


    当需要另一个Chromedriver更新时,我无法再以这种方式更新。配置设置仍然需要旧的路径和文件名,我无法确定在何处更改该设置。因此,我刚刚将最新的chromedriver重命名为“chromedriver.exe”,并将其固定在C:\Windows\system32中(它始终由路径引用)。原油,但有效。

    需要更新chromedriver: 在控制台中,如果您在Mac上,请运行:
    chromedriver update 2.36

    brew upgrade selenium-server-standalone
    brew upgrade chromedriver
    
    如果未安装上述两个:

    brew install selenium-server-standalone
    brew install chromedriver
    

    在我的例子中,我所在的团队将selenium指向我们拥有的特定chromedriver文件。为了让Selenium使用更新的chromedriver,我首先用brew安装了它,然后创建了一个符号链接,指向Selenium查找它的位置:

    brew install chromedriver
    ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver
    

    有可能这会对我需要的人有所帮助,我需要一个额外的步骤:

    我在MacOS X上,是的

    brew upgrade chromedriver
    bundle exec chromedriver-upgrade
    
    我安装了chromedriver助手gem,但它被隐藏起来,需要“bundle exec”前缀,否则shell找不到该命令


    以上解决了我的问题。

    正如其他人提到的,最新的chromedriver为我解决了问题。如果您手动下载驱动程序,并希望通知appium使用新的chromedriver,则可以通过以下命令执行此操作:


    appium--chromedriver可执行文件/path/to/driver/chromedriver….

    我正在运行量角器,遇到了相同的问题

    我的解决办法相当简单

    $npm更新量角器-g


    $webdriver管理器更新

    错误说明了一切:

    System.InvalidOperationException : unknown error: call function result missing 'value'
      (Session info: chrome=65.0.3325.146)
      (Driver info: chromedriver=2.33.506120
    
    该错误显然是关于无效操作异常的投诉

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

    • 您使用的是chromedriver=2.33
    • 的发行说明明确提到以下内容:
    支持Chrome v60-62

    • 您使用的是chrome=65.0
    • 的发行说明明确提到以下内容:
    支持Chrome v64-66

    • 我们不知道您的Selenium客户端版本
    因此,ChromeDriver版本(v2.33)和Chrome浏览器版本(v65.0)之间存在明显的不匹配

    解决方案
    • 将硒升级到当前水平
    • 将ChromeDriver升级到级别
    • 将Chrome版本保持在Chrome v64.x-66.x之间。()
    • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
    • 在执行测试套件之前和之后,使用该工具清除所有操作系统杂务
    • 如果您的基本Web浏览器/Web客户端版本太旧,请通过卸载它并安装最新的GA和Web浏览器/Web客户端版本
    • 执行
      @测试

    用最新版本替换ChromeDriver.exe。。Sa
    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>${webdrivermanager.version}</version>
        <scope>test</scope>
    </dependency>
    
    brew uninstall chromedriver
    brew tap homebrew/cask
    brew cask install chromedriver
    
    # select by value
    try:
        select.select_by_value('100')
    except:
        pass
    
    Use xpaths instead of class names to locate elements
    
    driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div')
    
    driver.find_element_by_class_name('Some class Name Here')