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

Selenium版本3.141.59破坏现有的testcases导致构建失败

穆建华
2023-03-14

我试图在我的项目中添加添加新的UI集成测试用例(使用webdriver)。我的项目最初使用selenium Ver2.42.0。我试图将版本更新到3.141.59,并观察到maven测试失败。

    -------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@7a31ca20
org.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.InvocationTargetException; nested exception is java.lang.reflect.InvocationTargetException: null
java.lang.reflect.InvocationTargetException
        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.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
        at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
        at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: org.testng.TestNGException: 
Cannot instantiate class com.symantec.epmp.scsem.web.management.controllers.SepUpgradeControllerTest
        at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:38)
        at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:380)
        at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:293)
        at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:115)
        at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:200)
        at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:120)
        at org.testng.TestRunner.initMethods(TestRunner.java:409)
        at org.testng.TestRunner.init(TestRunner.java:235)
        at org.testng.TestRunner.init(TestRunner.java:205)
        at org.testng.TestRunner.<init>(TestRunner.java:153)
        at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:536)
        at org.testng.SuiteRunner.init(SuiteRunner.java:159)
        at org.testng.SuiteRunner.<init>(SuiteRunner.java:113)
        at org.testng.TestNG.createSuiteRunner(TestNG.java:1299)
        at org.testng.TestNG.createSuiteRunners(TestNG.java:1286)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
        at org.testng.TestNG.run(TestNG.java:1057)
        at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
        at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
        at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
        at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
        ... 9 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

2.42.0

     <dependency>
        <groupId>org.jmockit</groupId>
        <artifactId>jmockit</artifactId>
        <version>1.16</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.21</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>1.3</version>
    </dependency>
         <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>xerces</groupId>
                    <artifactId>xercesImpl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.webdriver</groupId>
            <artifactId>webdriver-selenium</artifactId>
            <version>0.9.7376</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>2.0.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-firefox-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-ie-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-safari-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>

共有1个答案

明阳旭
2023-03-14

我可以怀疑的一件事是硒的依赖不匹配。

删除除selenium-java依赖项之外的所有与selenium相关的依赖项。其他的是冗余的依赖项,可能会也可能不会干扰运行。selenium-java包含运行selenium测试所需的所有子模块。

   <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${selenium.version}</version>
        <exclusions>
            <exclusion>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

如果您需要自动管理驱动服务器可执行文件(例如:chromedriver.exe,gechodriver.exe),请查看https://github.com/bonigarcia/webdrivermanager。

从呈现器接收消息超时问题似乎是chromedriver本身的问题。https://bugs.chromium.org/p/chromedriver/issues/detail?id=3332计划在chromedriver V83中修复。

然而,似乎有一些变通办法。

  1. 降级到chromedriver 79
  2. 在创建ChromeDriver过程中在chrome选项中添加pageload策略NONE

ChromeOptions选项=new ChromeOptions();options.setPageLoadStrategy(PageLoadStrategy.none);

 类似资料:
  • 我的团队正在使用React Native构建我们的第一个iOS应用程序。由于某些原因,仅在我的Mac上,运行后构建失败。自从我们使用添加Facebook身份验证后,这种情况就一直在发生。 我们都在运行Node-V7.0和Xcode的最新版本。我甚至尝试在本地删除repo并将其克隆回来。作为一个实验,我的团队的另一个成员在本地删除了他的repo,并将其克隆回来,并且能够使所有的工作。我们坐在一起,做

  • 问题内容: 我添加了一个构建步骤来执行Python脚本。 在此脚本中,使用lint.Run(.. args)调用pylint来检查代码。 该脚本可以工作,但是最后,构建失败,并显示唯一的错误消息: 有人知道为什么会这样吗? 问题答案: 看来您的pylint执行退出状态为非零(缺少脚本,错误的选项…),也许您在退出脚本时引发了异常或

  • 我必须添加一个WordPress安装到我的CodeIgniter系统,所以我把它放在一个名为的子图中,并在我的中排除了该文件夹。一切都很好。 我已经将所有的WordPress表和放在我的CodeIgniter数据库中,前缀为。 我现在已经将WordPress博客头文件加载到,就像这样; 并在我的控制器中创建了一个注册方法,以实际链接到我的。我这样做是因为我想使WordPress登录/注册过时,并从

  • 我在一个反应原生的应用程序,当我试图建立一个签署的版本,我得到这个错误: ps:buildToolsVersion=“28.0.3”minSdkVersion=21 compileSdkVersion=28 targetSdkVersion=28 supportLibVersion=“28.0.0”

  • 我正在运行一个React-Native应用程序,但当我试图在android目录下gradlew installDebug时,我得到了一个构建失败。以下是我使用时得到的信息: 这是该项目的回购是从我试图设置应用程序到我的genymotion模拟器,但构建从未完成。 我已经运行了react-native start命令,并设置了与couchbase lite服务器的同步。不确定这是否是相关信息。我对本

  • > 首先将在后台启动google chrome无头: google-chrome--无头--无沙箱--无缓存--禁用GPU--禁用Dev-SHM-用法& 然后启动ChromeDriver: ChromeDriver--Proxy-Server=10.0.x.x:yyyy--headless--disable-GPU--nogui--no-sandbox--enable-logging--ignor