我刚刚为Selenium WebDriver(a.k.a。Selenium 2)创建了一个简单的maven项目,用于无头测试。我在pom.xml中添加了PhantomJS驱动程序依赖项和其他依赖项:
<# : batch portion
@echo off & setlocal
powershell -noprofile -noninteractive "iex (${%~f0} | out-string)"
goto :EOF
: end batch / begin PowerShell #>
add-type -Assembly System.Windows.Forms
$newdir = "landscape"
if (-not (test-path $newdir)) { md $newdir }
gci | ?{ $_.Name -match "\.(jpe?g|bmp|gif|png)$" } | %{
$size = [Drawing.Image]::FromFile($_).Size
if ($size.Width -gt $size.Height) {
# remove the -whatif flag to enable moves
mv $_.FullName $newdir -whatif
} else {
write-host ("{0} was portrait. Not moving." -f $_.FullName) -f cyan
}
}
但是它出现了错误:
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.0</version>
</dependency>
从pom.xml中删除PhantomJS依赖项可以解决问题并且执行正常。 有人可以帮我找到问题吗?
提前致谢。
答案 0 :(得分:5)
最后我得到了解决方案。
添加PhantomJS v.1.2.0将selenium-remote-driver-2.53.0.jar替换为selenium-remote-driver-2.41.0.jar,因此会破坏所有内容。 现在使用V.2.41.0,
driver = new FirefoxDriver();
而不是
driver = new PhantomJSDriver(caps);
生成错误。
答案 1 :(得分:0)
根据@Ripon comment,问题在于版本兼容性,因此Selenium Server 2.53.x应与Phantom JS 1.3.x一起使用。
以下是pom.xml
中应该有效的行:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.3.0</version>
</dependency>
然后运行mvn dependency:tree
来构建并显示该项目的依赖关系树。
如果您不使用Maven,则需要make sure you've all dependent jar files in your classpath
。