【问题标题】:Selenium WebDriverException: unknown error: call function result missing 'value' using JavaSelenium WebDriverException:未知错误:使用 Java 调用函数结果缺少“值”
【发布时间】:2018-03-29 12:43:13
【问题描述】:

当我尝试在 java 中使用 selenium webdriver 运行我的第一个测试用例时,出现以下异常。有人可以帮我看看吗.....

Starting ChromeDriver 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f) on port 48523
Only local connections are allowed.
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Mar 29, 2018 7:34:16 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.181)
(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any     stacktrace information)
Command duration or timeout: 31 milliseconds
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'NIL-MKODAGA-D13', ip: '172.16.20.242', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '9.0.1'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome=    {chromedriverVersion=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f), userDataDir=C:\Users\mkodagan\AppData\Local\Temp\scoped_dir4652_10811},    takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=65.0.3325.181, platform=WIN8_1,   browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome,    takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=}]
Session ID: 1a39885769cc96406e2f2732c361c049
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:215)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:167)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:671)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:272)
    at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:96)
    at com.ham.scripts.ClickOnAllLinks.main(ClickOnAllLinks.java:44)

【问题讨论】:

  • 请阅读How to Ask,尤其是关于minimal reproducible example(MCVE)和How much research effort is expected?的部分,这将帮助您调试自己的程序并自己解决问题。如果您这样做并且仍然卡住,您可以返回并发布您的 MCVE、您尝试过的内容以及执行结果(包括任何错误消息),以便我们更好地帮助您。还提供指向页面和/或相关 HTML 的链接。

标签: java selenium selenium-webdriver webdriver selenium-chromedriver


【解决方案1】:

错误说明了一切:

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.181)
(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.3.9600 x86_64) 
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'NIL-MKODAGA-D13', ip: '172.16.20.242', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '9.0.1'
Driver info: org.openqa.selenium.chrome.ChromeDriver

错误清楚地表明 Selenium ClientChromeDriver 没有被检测到,如下所示:

Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'  
Driver info: org.openqa.selenium.chrome.ChromeDriver

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

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

支持 Chrome v60-62

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

支持 Chrome v64-66

  • 您的 Selenium Client 版本是 3.4.0,其中稍旧。

所以 Selenium Client v3.4.0ChromeDriver 版本 (v2.33) 和 之间存在明显的不匹配Chrome 浏览器 版本 (v65.0)

解决方案

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

【讨论】:

    【解决方案2】:

    正如@DebanjanB 所说,问题出在chromedriver 版本上。从日志中您可以看到它使用了有点旧的 chromedriver=2.33.506120 。从“https://sites.google.com/a/chromium.org/chromedriver/downloads”查看最新版本。

    我也遇到了同样的问题,可以通过更新 chrome 驱动来解决。 您可以使用以下方法来解决它。

    1. 正在运行npm install -g chromedriver
    2. 手动更新 chromedriver,我发现 appium 使用的 chromedriver 位于以下位置。 C:\Users\User-Name\AppData\Local\appium-desktop\app-1.5.0\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win。

    将此 chromedriver 替换为最新版本并运行您的代码。它应该可以正常工作。

    注意:该位置可能是特定于操作系统的,因此请搜索 chromedriver 的确切位置。

    【讨论】:

      猜你喜欢
      • 2018-09-01
      • 2018-08-19
      • 2020-06-29
      • 1970-01-01
      • 2018-07-14
      • 2018-08-16
      • 2018-11-30
      相关资源
      最近更新 更多