【问题标题】:In jenkins getting this error org.openqa.selenium.WebDriverException: unknown error: unable to discover open pages在詹金斯得到这个错误org.openqa.selenium.WebDriverException:未知错误:无法发现打开的页面
【发布时间】:2016-12-09 05:40:31
【问题描述】:

我正在尝试使用 pom.xml 在 jenkins(@localhost) 中运行 selenium 脚本,但遇到了 w.r.t chrome 驱动程序的问题。 铬版本 52.0 Selenium 服务器 2.53.0 以下是完整的堆栈跟踪:

================================================ =================

测试运行:7,失败:1,错误:0,跳过:6,经过的时间:63.654 秒

================================================ ======================= (驱动程序信息:chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:60.92 秒 构建信息:版本:'2.53.0',修订:'35ae25b1534ae328c771e0856c93e187490ca824',时间:'2016-03-15 10:43:46' 系统信息:主机:'akshayk',ip:'10.0.2.58',os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.8.0_45 '

================================================ =========================

驱动信息:org.openqa.selenium.chrome.ChromeDriver 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:422) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:170) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:159) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:116) 在 com.arrk.webdriver.WebDriverFactory.getInstance(WebDriverFactory.java:125) 在 com.arrk.webdriver.WebDriverFactory.getInstance(WebDriverFactory.java:64) 在 com.arrk.pages.TestBase.init(TestBase.java:145) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 在 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) 在 org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510) 在 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211) 在 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) 在 org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:170) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:104) 在 org.testng.TestRunner.privateRun(TestRunner.java:774) 在 org.testng.TestRunner.run(TestRunner.java:624) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:359) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:312) 在 org.testng.SuiteRunner.run(SuiteRunner.java:261) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1215) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1140) 在 org.testng.TestNG.run(TestNG.java:1048) 在 org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:217) 在 org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84) 在 org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:92) 在 org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) 在 org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) 在 org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

尝试了有关此问题的所有可能解决方案。如果还有其他解决方案,请告诉我。

【问题讨论】:

    标签: selenium-webdriver pom.xml selenium-chromedriver headless jenkins-cli


    【解决方案1】:

    这看起来类似于 Chrome 51-53 上的错误报告: org.openqa.selenium.remote.server.DriverServlet - Exception: unknown error: unable to discover open pages

    该错误链接到主要的 Chrome 错误 "Fails to navigate to URL when Chrome 51 is launched in session 0 / through CI". 启动作为 Windows 服务安装的 Jenkins 从站使用会话 0。

    要点是从 Chrome 51 中的会话 0 中断运行 Chrome。短期解决方法包括退回到 Chrome 50(如果你能找到它),或者使用 Chrome 选项“no-sandbox”运行,如下所示:

    ChromeOptions chromeOptions = new ChromeOptions(); 
    chromeOptions.AddArguments("test-type"); 
    chromeOptions.AddArguments("no-sandbox"); 
    PropertiesCollection.driver = new ChromeDriver(chromeOptions);
    

    Chrome 54 中预计会进行修复,但错误响应表明他们不打算长期支持会话 0。如果有人知道如何在 Windows 上从会话 0 以外的其他东西启动 Jenkins 从站,我会全力以赴.

    【讨论】:

    • 感谢您提供的信息。我使用了 chrome 选项“无沙箱”,现在它可以在 jenkins 中使用。这是使用“无沙箱”运行脚本的最佳方式还是只是一种替代方式? @芭芭拉
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2019-11-11
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多