org.openqa.selenium.WebDriverException: 未知错误:调用函数结果缺少'value'

66

Sendkeys无法工作。请帮我解决这个问题。

WebElement username = driver.findElement(By.xpath("//*[@id='username']"));      
username.sendKeys("123456");

控制台:

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'

  (Session info: chrome=65.0.3325.31)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.1.7601 SP1 x86) 
(WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds

Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:32.194Z'
System info: host: 'NEW-PC', ip: '192.168.0.103', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_161'

驱动程序信息:

org.openqa.selenium.chrome.ChromeDriver

Capabilities {acceptSslCerts: true, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.33.506120 (e3e53437346286..., userDataDir: C:\Users\NEW\AppData\Local\...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 65.0.3325.31, webStorageEnabled: true}
8个回答

114

我曾遇到同样的问题。这个问题只在使用Chrome 65(目前:dev channel)时出现。在Chrome 64(稳定频道和测试频道都是如此)中,一切正常。

结果发现我安装了一个旧版本的chromedriver。具体来说,我正在使用chrome=65.0.3325.51chromedriver=2.29.461585。运行npm install -g chromedriver将chromedriver升级为2.35.528157,问题得以解决。

简而言之: 运行npm install -g chromedriver


2
谢谢!它起作用了。已将Chrome驱动程序更新到2.35。 - maharaja
2
目前,chromedriver v2.35支持Chrome 62-64。 - Anton
1
这个解决方案不起作用。我有Chrome 71和驱动程序版本2.45。 - NarendraR
@NarendraR,你找到这个问题的解决方案了吗?已经快两天了,我还是找不到解决方法。 - Yashwardhan Pauranik
@NarendraR 谢谢兄弟,我会研究一下的。 - Yashwardhan Pauranik
显示剩余6条评论

16
错误信息已经说明了问题:
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'

  (Session info: chrome=65.0.3325.31)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.1.7601 SP1 x86) 
(WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds

Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:32.194Z'  

您的主要问题是以下二进制文件之间的版本兼容性

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

支持Chrome v60-62

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

支持Chrome v64-66

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

解决方案

  • ChromeDriver升级到当前ChromeDriver v2.37版本。
  • 保持Chrome版本在Chrome v65.x水平。 (根据ChromeDriver v2.37发布说明)
  • 通过您的IDE清理项目工作区并仅使用所需的依赖项重新构建您的项目。
  • 使用CCleaner工具在执行测试套件之前和之后清除所有操作系统任务。
  • 如果您的基本Web Client版本太旧,则通过Revo Uninstaller卸载它并安装最新的GA和发布版本的Web Client
  • 执行您的@Test

3
最新版的 Chrome 浏览器需要相应的最新 Chromedriver 可执行文件才能运行测试。

2

我也遇到了同样的问题,安装了Chrome驱动程序后,问题得到了解决。

运行命令:npm install chromedriver --chromedriver_version=LATEST


2
更改ChromeDriver的最新版本对我有帮助。

1

0

这个问题发生在Chrome和Chromedriver不同步的情况下。要么将两者都更新到最新版本,要么确保它们可以一起工作。运行以下命令后,它对我起作用了

npm install -g chromedriver --chromedriver-force-download
webdriver-manager update

0

我只是安装了 Katalon Studio 的新版本,它正常运行。


2
抱歉,但是这个解决方案(如果正确)高度依赖于发布问题的用户的工作流程。在没有真正需要的情况下引入新工具看起来像是一种不理解问题本质/来源就试图解决问题的绝望尝试。 - alezvic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接