嗨我在运行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 \硒\服务器\
答案 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"