当我尝试使用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:UsersmkodaganAppDataLocalTempscoped_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)
错误说明了这一切:
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客户端和 chromedriver 没有像以下方式那样回到以下操作:
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 ,其中有点老。
因此,硒客户端v3.4.0 , chromedriver 版本( v2.33 (与之间存在明显的不匹配。Chrome浏览器版本( v65.0 (
解决方案
- 升级硒到当前级别版本3.11.0 。
- 升级 chromedriver 到当前 chromedriver v2.37 latver。
- 保留 chrome 版本at chrome v65.x 级别。(根据Chromedriver v2.37发行说明(
- 清洁您的项目工作区通过您的 IDE 和重建项目仅具有所需依赖性。
- 使用 ccleaner 工具在执行您的测试套件之前和之后擦除所有操作系统
- 如果您的base Web客户端版本太旧了,请通过 revo uninstaller 卸载它,并安装最新的GA并发布版本的版本 web client
- 进行系统重新启动。
- 执行您的
@Test
。
正如@debanjanb所述,问题在于Chromedriver版本。从日志中,您可以看到它使用Chromedriver = 2.33.506120,它有点旧。从" https://sites.google.com/a/chromium.org/chromedriver/downloads"中检查最新版本。
我也面临着同样的问题,可以通过更新Chrome驱动程序来解决问题。您可以使用以下方法来解决它。
- 运行
npm install -g chromedriver
- 手动更新Chromedriver,我发现Appium使用的Chromedriver位于以下位置。 c: user user-name appData local appium-desktop app-1.5.0 resources app node_modules appium node_modules appium-chromedriver chromedriver chromedriver chromedriver chromedriver chromedriver win。li>
用最新的镀铬器替换此Chromedriver并运行您的代码。它应该可以正常工作。
注意:位置可能是特定于OS的,因此请搜索Chromedriver精确位置。