我试图通过Google Chrome(版本12.0.742.100)上的selenium maven插件(版本1.1)运行一些Selenium 2.0 HTML测试,我收到错误,无法调用方法'indexOf'未定义< / strong>,在尝试执行Open Command之后。
搜索之后,似乎我们应该使用 - disable-web-security 参数执行我们的chrome可执行文件,这对Selenese目标来说并不容易。看起来插件允许我们指定chrome可执行文件的文件路径作为Selenium-Maven插件中参数的一部分,但它不允许我附加 - disable-web-security 来电。如果我尝试这样做,它会发出maven构建错误。
我尝试做的是将调用放入批处理文件中,然后指向我的POM中的批处理文件,这样就可以了。然而,最终发生的事情是Chrome浏览器启动并且不会转到测试运行器,它会保留在我的主页上。
我的问题是,无论如何都要克服我使用Selenium-Maven插件在Chrome中通过Selenese测试指出的错误?如果没有,除了将测试转换为JUnits / TestNg测试之外,最好的方法是什么。
请参阅下面我的POM文件的片段。
....
<properties>
<selenium.version>2.0b3</selenium.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<version>1.1</version>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium</artifactId>
<version>${selenium.version}</version>
<type>pom</type>
<exclusions>
<!-- prevent ant:ant versus org.apache.ant:ant collision -->
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<executions>
<execution>
<id>Run-googlechrome-Script</id>
<phase>integration-test</phase>
<goals>
<goal>selenese</goal>
</goals>
<configuration>
<browser>*googlechrome</browser>
<suite>src/test/selenium/html/TestSuite.html</suite>
<startURL>http://localhost:5555/</startURL>
<results>${project.build.directory}/results/googlechrome-smoke-results.html</results>
<port>5555</port>
<timeoutInSeconds>5000</timeoutInSeconds>
<multiWindow>true</multiWindow>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
....
谢谢,
涓
答案 0 :(得分:1)
尝试所需的功能 - 请参阅此处:http://code.google.com/p/selenium/wiki/ChromeDriver
所以我建议你在@BeforeClass函数中使用这样的东西:
@BeforeClass
public static void createAndStartService() {
service = new ChromeDriverService.Builder()
.usingChromeDriverExecutable(new File("path/to/my/chromedriver"))
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--disable-web-security"));
WebDriver driver = new ChromeDriver(capabilities);
BTW最好的方法是将chromedriver.exe存储在你的maven / src子目录中