Maven Selenium插件 - 锁定文件仍然存在错误

时间:2015-03-17 14:08:39

标签: java selenium junit

My Project正在使用selenium-client-driver 0.9,基于selenium的集成测试将由maven使用maven-selenium-plugin执行。 (stackoverflow中已经有很多问题,但无法找到相关答案)。 Selenium测试用例失败并出现错误 引起:org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher $ FileLockRemainedException:锁定文件仍然存在! C:\ Users \用户nagappan.s \应用程序数据\本地的\ Temp \ customProfileDir23d2b92949d74270915586b2a3f2073a \ parent.lock     在org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.waitForFileLockToGoAway(FirefoxChromeLauncher.java:318)     在org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.waitForFullProfileToBeCreated(FacefoxChromeLauncher.java:365)     ......还有20个

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。 Maven selenium插件只是启动集线器而不是selenium节点(集成和独立)。在我的例子中,它是旧版本的selenium 0.9,单元测试使用DefaultSelenium,因此它需要一个节点,它也可以通过打开浏览器和控制台来处理浏览器命令。所以我使用maven antrun插件启动了集线器和节点来启动服务器和集线器,如

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
    <execution>
        <phase>pre-integration-test</phase> 
        <configuration>
            <target>
                <property name="selenium.server.dir" value="${basedir}" />
                <path id="selenium.classpath">
                    <fileset dir="${selenium.server.dir}">
                        <include name="selenium*.jar" />
                    </fileset>
                </path>     
                <java classname="org.openqa.grid.selenium.GridLauncher"
                      classpathref="selenium.classpath"
                      failonerror="true"
                      fork="false">
                    <arg line="-role hub"/>
                </java>
                <java classname="org.openqa.grid.selenium.GridLauncher"
                      classpathref="selenium.classpath"
                      failonerror="true"
                      fork="false">
                    <arg line="-role node
                               -hub http://localhost:4444/grid/register"/>
                </java>
            </target>
        </configuration>
        <goals>
            <goal>run</goal>
        </goals>
    </execution>
    </executions>
</plugin>

现在完美无缺。