未找到符号:使用maven运行selenium时

时间:2009-09-25 20:53:48

标签: java maven-2 continuous-integration selenium

嗨我在运行mvn -e integration-test时遇到符号未找到错误。如果包在我的存储库中,为什么会发生这种情况?我已经尝试下载并手动安装它,但它没有什么区别。这是maven中常见的错误吗?

我正在使用vista家庭版,

错误消息

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
D:\MyWorks\steps\step6\functest\src\it\com\mycompany\app\functest\FirstTest.java:[22,25] cannot find symbol
symbol  : constructor SeleniumServer(int)
location: class org.openqa.selenium.server.SeleniumServer

正在使用的教程。 http://binil.wordpress.com/2006/12/08/automated-smoke-tests-with-selenium-cargo-testng-and-maven/

POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <artifactId>myapp</artifactId>
    <groupId>com.mycompany</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

 <artifactId>functest</artifactId>
  <name>functional-tests</name>
  <packaging>pom</packaging>

  <dependencies>
    <dependency>
      <groupId>org.seleniumhq.selenium.client-drivers</groupId>
      <artifactId>selenium-java-client-driver</artifactId>
      <version>1.0</version>
      <scope>test</scope>
    </dependency>

     <dependency>
      <groupId>org.openqa.selenium.server</groupId>
      <artifactId>selenium-server</artifactId>
      <version>1.0.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>5.1</version>
      <scope>test</scope>
      <classifier>jdk15</classifier>
    </dependency>
  </dependencies>

  <build>
    <testSourceDirectory>src/it</testSourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
          <execution>
            <phase>integration-test</phase>
            <goals>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <suiteXmlFiles>
            <suiteXmlFile>src/it/testng.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

PATH到我的机器上的selenium服务器类。一切都在那里,我查了一下。

  

的.m2 \库\有机\ openqa \硒\服务器\硒 - 服务器\ 1.0.1 \硒 - 服务器 - 1.0.1.jar \有机\ openqa \硒\服务器\

3 个答案:

答案 0 :(得分:4)

int(端口)作为参数的构造函数确实已被删除(请参阅更改集:2260)。因此,使用no-arg构造函数SeleniumServer()创建SeleniumServer(4444是默认端口):

@BeforeSuite
public void startSeleniumServer() throws Exception {
  seleniumServer = new SeleniumServer();
  seleniumServer.start();
}

如果您需要传递配置选项,请使用SeleniumServer(RemoteControlConfiguration configuration)

答案 1 :(得分:3)

在您列为依赖项的版本(SeleniumServer(int))中不再存在构造函数1.0.1

如果我能在网上找到SeleniumServer的javadoc,那么就可以建议使用哪一个。

答案 2 :(得分:2)

错误的类(org.openqa.selenium.server.SeleniumServer)是在您已列出的selenium-server依赖项中定义的。

我能看到的唯一不一样是本教程中的selenium-server和selenium-java-client-driver版本为0.9。查看源代码,构造函数在1.0.1版本中已被删除。

为了本教程的目的,回滚到0.9版本是最简单的,然后一旦你更熟悉API,回到1.0.1并相应地重构。

这是1.0 version的Javadoc(与0.9 version比较),表明端口(构造函数的int参数)现在只能作为命令行参数传递给main方法:

**main**

public static void main(java.lang.String[] args)
             throws java.lang.Exception

Starts up the server on the specified port (or default if no port was specified) and then starts interactive mode if specified.

Parameters:
    args - - either "-port" followed by a number, or "-interactive"