升级selenium 1.0到2.0的若干问题

上一篇 / 下一篇  2011-06-17 14:42:46 / 个人分类:selenium

老大今天让把selenium 1.0的升级到2.0, 来试着利用selenium Grid 对脚本进行分布式执行。在把selenium 1.0升级到2.0的时候遇到以下两个问题:
一.执行java -jar selenium-server_2.0报以下错误:java.lang.noclassdeffounderror:version
Caused by:java.lang.class not found exception:version..............
一看就是些组件没有升级上来,提示版本问题。到底是什么原因引起的呢?想来想去,不知为何。不如google一下,有篇文章是详细介绍这个的,简单来说就是jdk的版本不对,selenium-server_2.0.jar 应该需要1.5以上的版本,于是升级jdk 到1.6.问题解决。
现摘录相关文章如下:
UnsupportedClassVersionError 收藏
        出现java.lang.UnsupportedClassVersionError 错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。
        因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。
这个错误尤其在JDK5与JDK5之前的版本上表现明显。因为,JDK5在Java语法上作了不少增强,引入了一些新的.class文件的元素,导致旧版本的 JVM无法解释、执行.class文件。即使这个类并没有使用任何JDK5的新元素,但是JDK5生成的.class文件,JDK1.4及其以前的JVM 都无法辨认!
        所以,目前使用最广的,还是JDK1.4。很多软件和项目都无法使用JDK5。
有一个名叫 Toby Reyelts 的开发人员决定消除 JDK 5.0 编译器限制。结果就是开放源代码的 Retroweaver 项目(参见参考资料)。Retroweaver 使用 classworking 技术来修改由 JDK 5.0 编译器生成的二进制类表示,以便这些类可以与早期的 JVM 一起使用。
        它通过修改JDK5生成的.class文件,将其变为JVM1.4及之前版本能够运行的.class文件。
目前,使用新版本的IDE编辑器可能会造成你遭遇java.lang.UnsupportedClassVersionError 错误。
比如,Eclipse3.2+MyEclipse5.0这个新版的IDE工具。进入首选项---Java---编译器,可以看到,默认的编译器依从等级是5.0,这里改为1.4,因为我们使用的软件需要运行在JDK1.4的JVM上。
        同一配置区下的已安装JRE中,不要安装JRE,而是安装JDK,指定1.4或1.5的JDK。还是使用jdk1.4。
在MyEclipse----应用服务器下,指定Tomcat5。指定Tomcat使用jdk1.4。
        这样,就全部指定使用Jdk1.4来编译和运行程序了。如果全部指定jdk5也是可以的。但是,绝对不能够使用jdk5编译程序,而又在jdk1.4上运行程序,那样将会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。
这种情况下,不论是Eclipse生成的war包,还是ant文件生成war包,都使用jdk5编译,就会在运行时出现错误,该应用程序将无法启动。如果你查看 Tomcat的日志文件,将会看到正是java.lang.UnsupportedClassVersionError错误发生了!
二.将selenium server 2.0 升级运行ok,好,运行一下脚本试试。。。。谁知道刚一执行就报错了。一看和没启动server的错是一摸一样的。这是为什么呢?明明启动了,为什么报和没启动是一个错误。。。有是哪个环境没有ok啊?仔细检查一下,偶,selenium rc还是1.0的?!升级到2.0试试。。。。结果。。。ok。。。
 

TAG:

 

评分:0

我来说两句

Open Toolbar