我开发了一种深度依赖Selenium的自动化测试软件。 现在我需要保护我的代码,我显然后悔这个选择,但仍然。
我试过使用ProGuard。这是我的配置文件:
-injars '...robotBU.jar'
-outjars '...robotOBF.jar'
-libraryjars 'C:\Program Files\Java\jre7\lib\rt.jar'
-libraryjars '...selenium-server-standalone-2.28.0.jar'
-dontskipnonpubliclibraryclassmembers
-dontshrink
-dontoptimize
-dontusemixedcaseclassnames
-verbose
-dontnote
-dontwarn
-keep class test.**
但是,当我执行程序时,我得到了这个:
线程“main”中的异常java.lang.NoClassDefFoundError:org / openqa / selenium / WebDriver at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) 在org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa) der.java:56)
引起:java.lang.ClassNotFoundException:org.openqa.selenium.WebDriver 在java.net.URLClassLoader $ 1.run(未知来源) 在java.net.URLClassLoader $ 1.run(未知来源) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ......还有3个
引起:java.util.zip.ZipException:块类型无效 at java.util.zip.InflaterInputStream.read(Unknown Source) at java.io.FilterInputStream.read(Unknown Source) at sun.misc.Resource.getBytes(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) 在java.net.URLClassLoader.access $ 100(未知来源) ... 9更多
有关可能导致此问题的任何提示?
---更新
我尝试使用不同的Selenium jar,但这导致我在Proguard中遇到这个问题:
Unexpected error while performing partial evaluation:
Class = [test/V14_02_10/TestSaisieFeuilleDeSoinLB]
Method = [a()V]
Exception = [java.lang.IllegalArgumentException] (Can't find common super class of [org/openqa/selenium/NoSuchElementException] (with 2 known super classes) and [org/openqa/selenium/WebElement] (with 1 known super classes))
Unexpected error while preverifying:
Class = [test/V14_02_10/TestSaisieFeuilleDeSoinLB]
Method = [a()V]
Exception = [java.lang.IllegalArgumentException] (Can't find common super class of [org/openqa/selenium/NoSuchElementException] (with 2 known super classes) and [org/openqa/selenium/WebElement] (with 1 known super classes))
Can't find common super class of [org/openqa/selenium/NoSuchElementException] (with 2 known super classes) and [org/openqa/selenium/WebElement] (with 1 known super classes)