在网上查找解决方案时,我发现关于El Capitan版本的Java主版本和次版本不正确的问题,有几个解决方案要求你要么禁用rootless(根保护),这听起来让我不太满意,或者仅仅是在OS X El Capitan上不再适用。
在El Capitan上尝试运行webdriver-manager start
时,您可能会遇到以下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/openqa/grid/selenium/GridLauncher : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Selenium Standalone has exited with code 1
echo $JAVA_HOME
找到此链接。java -version
,您将看到 Java Version "1.6"
,您需要让其显示为 Java Version "1.8"
。以前更改符号链接的方式已经过时,因为自 El Capitan 以来,苹果已经使某些目录无法更改,即使对于管理员用户也是如此,使用 Rootless 安装。其中包括 /usr 文件夹。系统偏好设置-> Java-> Java-> 查看...-> 系统
并复制路径字段。/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
我们需要此路径的大部分内容,除了末尾的 /bin/java
。/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
在终端中运行以下命令,将 [PATH] 替换为上面获取到的路径。
export JAVA_HOME="[PATH]"
然后在终端中运行它。java -version
,现在它应该会显示Java Version "1.8"
。webdriver-manager start
应该已经成功。export JAVA_HOME="[PATH]"
加入到我的.bash_profile
文件中。如果不这样做,每次重新启动时路径都会恢复为1.6版本。 - Ryan将以下行添加到~/.bash_profile对我有用:
export JAVA_HOME="$(/usr/libexec/java_home --version 1.8)"
你可能需要重新启动你的终端才能使这些更改生效,或者只需运行以下命令:
. ~/.bash_profile