2

我正在尝试使用 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我不能再进一步了。有人成功配置过这个吗?

4

1 回答 1

0

仅仅创建一个使用 YAJSW(Yet Another Java Service Wrapper)的脚本来适应将网格集线器注册为服务并不难。然后,Maven 可以调用脚本并将其作为自己的独立进程启动。此外,Maven 可以调用停止服务来停止它。我认为这将是优雅的。

这是我几乎工作的尝试。我需要向 Selenium 专家寻求帮助才能使其正常工作。注册服务时出现意外错误。不过大部分工作已经完成。一旦我得到这个工作,很适合你。

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

于 2013-06-03T02:13:27.927 回答