在maven中运行硒中心

时间:2013-03-06 16:40:21

标签: maven selenium phantomjs

我正在尝试使用selenium-maven-plugin在maven中使用角色中心运行selenium服务器,以便从远程控制测试中使用phantomjs驱动程序,到目前为止,我的插件配置非常简单:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>selenium-maven-plugin</artifactId>
  <version>2.3</version>
  <executions>
    <execution>
      <id>start-selenium</id>
      <phase>pre-integration-test</phase>
      <goals>
        <goal>start-server</goal>
      </goals>
      <configuration>
        <background>true</background>
      </configuration>
    </execution>

    <execution>
      <id>stop-seleniump</id>
      <phase>post-integration-test</phase>
      <goals>
        <goal>stop-server</goal>
      </goals>
    </execution>
  </executions>  
</plugin>

然后我使用maven执行插件挂钩phantomjs:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.2.1</version>
  <executions>
    <execution>
      <phase>pre-integration-test</phase>
      <goals>
        <goal>exec</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <executable>phantomjs</executable>
    <arguments>
      <argument>--webdriver=8080</argument>
      <argument>--webdriver-selenium-grid-hub=http://localhost:4444</argument>
    </arguments>
  </configuration>
</plugin>

使用此配置,输出为:HTTP ERROR: 403 Forbidden for Proxy,我不能再继续了。任何人都成功配置了这个?

1 个答案:

答案 0 :(得分:0)

创建一个使用YAJSW(又一个Java Service Wrapper)的脚本来容纳将网格集线器注册为服务并不是太过分。然后,Maven可以调用脚本并将其作为自己独立的进程启动。此外,Maven可以拨打停止服务来阻止它。我觉得它很优雅。

Here is my almost working attempt。我需要向Selenium专家寻求帮助以使其正常运行。注册意外服务时出错。大部分工作都已完成。一旦我开始工作,最好能帮到你。

现在,虽然您可以将Grid Hub作为服务运行,但您不希望对Node执行相同操作,因为它需要访问桌面(并且服务只能访问其自己的隐藏私有桌面)。所以,也许这会让我们回到你想要解决的同样问题。