当前位置: 首页 > 知识库问答 >
问题:

驱动程序在Jenkins中不是可执行错误,而是在本地机器(MacBook)中运行

丁经略
2023-03-14

我在用MacBook。当我通过测试运行测试时,我们的Jenkins服务器正在linux服务器上运行。xml文件所有测试类都在运行,但当我运行Jenkins build时,它的not Get run错误是驱动程序不可执行

我在Jenkins中创建了maven项目,并从bitbucket中给出了该项目的回购url

有人帮我解决这个问题吗?

    [INFO] Running TestSuite
java.lang.IllegalStateException: The driver is not executable: /var/lib/jenkins/workspace/TravelCenterSeleniumJenkinsIntegrationCMB/target/classes/chromedriver
    at com.google.common.base.Preconditions.checkState(Preconditions.java:585)
    at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:150)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:141)
    at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:159)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:355)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:94)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)
    at utils.TestApp2.openBrowser(TestApp2.java:59)
    at uk.TravelcCenter_Tests.Sports_Shows_Tests.setUp(Sports_Shows_Tests.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:134)
    at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:63)
    at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:348)
    at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:302)
    at org.testng.internal.TestInvoker.runConfigMethods(TestInvoker.java:695)
    at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:523)
    at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
    at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
    at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:816)
    at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
    at java.util.ArrayList.forEach(ArrayList.java:1259)
    at org.testng.TestRunner.privateRun(TestRunner.java:766)
    at org.testng.TestRunner.run(TestRunner.java:587)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
    at org.testng.SuiteRunner.run(SuiteRunner.java:286)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1109)
    at org.testng.TestNG.runSuites(TestNG.java:1039)
    at org.testng.TestNG.run(TestNG.java:1007)
    at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:283)
    at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:75)
    at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120)
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
    at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)

共有3个答案

申高卓
2023-03-14

我在我的项目中有10个测试类,2个类不是定义良好的chrome驱动程序实例,这就是为什么我要面对上面的问题,现在已经分类了

柳志专
2023-03-14
public static String osDetector() {
  String os = System.getProperty("os.name").toLowercase();
  if (os.contains("win") {
    return Windows;
  } else if(os.contains("nux") || os.contains("nix") {
    return Linux;
  } else {
    return "OtherOs";
  }
}

// under the openDriverMethod
ChromeOptions options = new ChromeOptions();
if (osDetector.contains("Windows") {
  System.setProperty("webdriver.chrome.driver", "driver folder path");
} else if(osDetector.contains("Linux") {
  System.setProperty("webdriver.chrome.driver", "driver folder path");
  //you need to add this one i guess!
  options.setBinary("/usr/bin/google-chrome");
}

东郭自珍
2023-03-14

我的猜测-正是错误所说的,驱动程序是不可执行的。SSH到服务器,看看是否

sudo chmod 777 /var/lib/jenkins/workspace/TravelCenterSeleniumJenkinsIntegrationCMB/target/classes/chromedriver

修复它(777分别为用户、组和其他人授予文件的读/写/执行权限)。如果您不能按任何规定使用SSH,那么Jenkins服务器可能需要在启动时使文件可执行

 类似资料:
  • 我创建了一个测试项目(maven)来测试REST API的性能。我正在使用Jeter插件 这是我的pom片段 我有一个Jenkins文件在我的项目像这样 当我触发Jenkins上的构建时,构建成功了,我在控制台输出中看到了这一点 问题是,它什么也做不了。Performace趋势图没有显示任何东西。 如果我在本地机器上运行相同的项目,它工作得非常好。我在日志中看到类似的东西,证实了这一点。生成的输出

  • 我有我的chromedriver和chromedriver。项目文件夹中的exe权限。我正在用这段代码创建驱动程序的实例。 在本地windows上也可以(如果我们将“chromedriver”更改为“chromedriver.exe”),但当我在CentOS上运行它时,会收到错误消息:“驱动程序不可执行”。

  • 以下是在远程主机上安装PIP/BOTO的任务,这些任务在运行route53模块时不会再出现错误:

  • 我试图在Linux上用jenkins构建我的maven项目,但是我的selenium测试失败了,出现了这个异常 运行TestSuite配置TestNG:org.apache.maven.surefire.testng.conf.TestNG652Configurator@61db2215测试运行: 6,失败: 1,错误: 0,跳过: 5,时间流逝: 0.51秒 我知道我在窗口而不是Linux上使用

  • 当部署在azure中时,Swagger UI不是在。NET核心应用程序中创建的,但它在本地运行得很好

  • Html代码: 结果: 在com.example.tests.finalizepo.main(finalizepo.java:41)的org.openqa.selenium.support.ui.webdriverwait.timeoutexception(webdriverwait.java:80)直到(fluentwait.java:261)由:org.openqa.selenium.nosu