“java.lang.IllegalStateException:驱动程序不可执行”错误即将发生在ubuntu 14.1上的Jenkins安装上运行TestNG测试用例

时间:2015-06-23 10:22:51

标签: jenkins selenium-webdriver testng selenium-chromedriver

“java.lang.IllegalStateException:驱动程序不可执行”错误即将在ubuntu 14.1上运行Jenkins安装的TestNG测试用例时出现。好像Chromedriver没有在ubuntu上安装的jenkin上启动,在Windows操作系统上尝试使用jenkin安装的相同配置,工作正常。如果有的话请给我任何解决方案。

控制台输出:

run:
   [testng] org.testng.TestNGException: 
   [testng] Cannot instantiate class TestCase.NewsArticles_Section_TC
   [testng]     at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:38)
   [testng]     at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:387)
   [testng]     at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:299)
   [testng]     at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:110)
   [testng]     at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:186)
   [testng]     at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:120)
   [testng]     at org.testng.TestRunner.initMethods(TestRunner.java:409)
   [testng]     at org.testng.TestRunner.init(TestRunner.java:235)
   [testng]     at org.testng.TestRunner.init(TestRunner.java:205)
   [testng]     at org.testng.TestRunner.<init>(TestRunner.java:153)
   [testng]     at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:522)
   [testng]     at org.testng.SuiteRunner.init(SuiteRunner.java:157)
   [testng]     at org.testng.SuiteRunner.<init>(SuiteRunner.java:111)
   [testng]     at org.testng.TestNG.createSuiteRunner(TestNG.java:1299)
   [testng]     at org.testng.TestNG.createSuiteRunners(TestNG.java:1286)
   [testng]     at org.testng.TestNG.createSuiteRunners(TestNG.java:1289)
   [testng]     at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
   [testng]     at org.testng.TestNG.run(TestNG.java:1057)
   [testng]     at org.testng.TestNG.privateMain(TestNG.java:1364)
   [testng]     at org.testng.TestNG.main(TestNG.java:1333)
   [testng] Caused by: java.lang.reflect.InvocationTargetException
   [testng]     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   [testng]     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
   [testng]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
   [testng]     at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
   [testng]     at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
   [testng]     ... 19 more
   [testng] Caused by: java.lang.ExceptionInInitializerError
   [testng]     at pagefactory.NewsArticle_Section.NewsArticle_Section_Add.<init>(NewsArticle_Section_Add.java:18)
   [testng]     at TestCase.NewsArticles_Section_TC.<init>(NewsArticles_Section_TC.java:14)
   [testng]     ... 24 more
   [testng] Caused by: java.lang.IllegalStateException: The driver is not executable: /var/lib/jenkins/jobs/Mentis kitchen test/workspace/lib/chromedriver.exe
   [testng]     at com.google.common.base.Preconditions.checkState(Preconditions.java:197)
   [testng]     at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:126)
   [testng]     at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:117)
   [testng]     at org.openqa.selenium.chrome.ChromeDriverService.access$0(ChromeDriverService.java:1)
   [testng]     at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:118)
   [testng]     at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:291)
   [testng]     at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:82)
   [testng]     at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:117)
   [testng]     at reusablescript.driver.<clinit>(driver.java:12)
   [testng]     ... 26 more
   [testng] The tests failed.

makexsltreports:

2 个答案:

答案 0 :(得分:7)

看起来你正试图在Linux上运行chromedriver.exe。您必须为Linux下载二进制文件。堆栈跟踪中的.exe看起来不正确。

然后您必须向executable flag

添加chmod +x chromedriver

答案 1 :(得分:0)

鉴于以下允许使用chromedriver并且它有效。

chmod 777 chromedriver

如前所述,与堆栈跟踪中的.exe部分无关。