如何在詹金斯上启动 Web 驱动程序时修复错误"while loading shared libraries: libglib-2.0.so.0"



目前,我有一个UI自动化脚本(selenium)(使用gradle&testng),我已经将chrome驱动程序(用于Linux)连接到GitHub。然后我触发Jenkins上的构建事件。但是,当涉及到步骤打开浏览器时,就会发生错误。这是一张图片:[1] :https://i.stack.imgur.com/rrwSQ.png

日志:

org.openqa.selenium.WebDriverException:等待驱动程序服务器启动时超时。内部版本信息:版本:3.141.59,修订:e82be7d358,时间:2018-11-14T08:17:03系统信息:主机:"gradle-tdz09",ip:"10.60.0.13",os.name:"Linux",os.arch:"amd64",os.version:"4.14.138+",java.version:"1.8.0_252"驱动程序信息:Driver.version:ChromeDriver网址:org.openqa.selene.remote.service.DriverService.waitUntilAvailable(DriverService.java:202)网址:org.openqa.selene.remote.service.DriverService.start(DriverService.java:188)网址:org.openqa.selene.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)网址:org.openqa.selene.remote.RemoteWebDriver.exexecute(RemoteWebDriver.java:552)网址:org.openqa.selene.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)网址:org.openqa.selene.remote.RemoteWebDriver.(RemoteWebDriver.java:131)网址:org.openqa.selene.chrome.ChromeDriver。(ChromeDriver.java:181)网址:org.openqa.selene.chrome.ChromeDriver。(ChromeDriver.java:168)网址:org.openqa.selene.chrome.ChromeDriver。(ChromeDriver.java:157)在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessor Impl.java:45)位于java.lang.reflect.Constructure.newInstance(Constructor.java:423)位于org.codehaus.groovy.reflection.CachedConstructor.ioke(CachedConsstructor.java:72)位于org.codehaus.groovy.runtime.callsite.ConstrutorSite$ConstrutorsiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277)网址:com.grove.core.base.DriverFactory.createDriver(DriverFactory.groovy:53)位于com.grove.core.base.DriverFactory.initDriver(DriverFactory.groovy:64)网址:com.grove.core.base.DriverFactory。(DriverFactory.groovy:69)在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessor Impl.java:45)位于java.lang.reflect.Constructure.newInstance(Constructor.java:423)位于org.codehaus.groovy.reflection.CachedConstructor.ioke(CachedConsstructor.java:72)位于org.codehaus.groovy.runtime.callsite.ConstrutorSite$ConstrutorsiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:286)网址:com.grove.core.extension.gmail.GetMessagesListAPI.getAccessTokenFromEmail(GetMessagesListAPI.groovy:44)网址:com.grove.core.extension.gmail.GetMessagesListAPI$getAccessTokenFromEmail.call(未知来源)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148)在API.Employees.Test_EemployeeManagement.API_T1619_EEmployeeActivateAndAddDetails上(Test_EempreeManagement.groovy:182)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于java.lang.reflect.Method.ioke(Method.java:498)位于org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelpr.java:133)网址:org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)位于org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)网址:org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)位于org.testng.internal.TestInvoker$MethodInvocationAgent.ioke(TestInvoker.java:804)位于org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)位于org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)网址:org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)位于java.util.ArrayList.forEach(ArrayList.java:1257)网址:org.testng.TestRunner.privateRun(TestRunner.java:770)网址:org.testng.TestRunner.run(TestRunner.java:591)网址:org.testng.SuiteRunner.runTest(SuiteRunner.java:402)网址:org.testng.SuiteRunner.runSequencely(SuiteRunner.java:396)网址:org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)网址:org.testng.SuiteRunner.run(SuiteRunner.java:304)网址:org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)位于org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)位于org.testng.testng.runSuitesSequencely(testng.java:1180)在org.testng.testng.runSuitesLocally(testng.java:1102)网址:org.testng.testng.runSuites(testng.java:1032)网址:org.testng.testng.run(testng.java:1000)网址:org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.runTests(TestNGTestClassProcesser.java:141)网址:org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.stop(TestNGTestClassProcesser.java:90)网址:org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于java.lang.reflect.Method.ioke(Method.java:498)网址:org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDisptch.java:36)网址:org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDisptch.java:24)位于org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)位于org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)网址:com.sun.proxy.$Proxy2.stop(未知来源)网址:org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于java.lang.reflect.Method.ioke(Method.java:498)网址:org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDisptch.java:36)网址:org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDisptch.java:24)位于org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)位于org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)位于org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:413)网址:org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)网址:org.gradle.internal.concurrent.ManagedExecutiorImpl$1.run(ManagedExecutiorimpl.java:48)位于java.util.concurrent.ThreadPoolExecutiator.runWorker(ThreadPoolExecutiator.java:1149)位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)位于org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)在java.lang.Thread.run(线程.java:748)由:org.openqa.selene.net.UrlChecker$TimeoutException引起:等待超时[http://localhost:27034/status]在20002毫秒后可用网址:org.openqa.selent.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)网址:org.openqa.selene.remote.service.DriverService.waitUntilAvailable(DriverService.java:197)…还有88导致原因:java.util.courrent.TimeoutException位于java.util.concurrent.FFutureTask.get(FutureTask.java:205)网址:com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:156)网址:org.openqa.selent.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)…还有89个

感谢您的帮助!

该问题与硒无关,而是与UBUNTU有关。它找不到铬驱动程序。您需要在64位Debian或UbuntuLinux下安装GTK+ia32共享库。该包提供了一组预编译的ia32(i386系列)共享库,因此第三方32位程序可以在64位系统上使用GTK+小部件,这些系统包括适当的仿真支持。您可能需要在amd64和ia64系统上安装和使用ia32-lib包。此包包含ia32/i386体系结构的运行库,配置为在运行64位内核的amd64或ia64 Debian系统上使用。请参阅https://www.cyberciti.biz/faq/install-libgobject-2-0-so-0-on-debian-ubuntu-linux/

相关内容

最新更新