0

我正在尝试使用 ANT 来启动 Selenium Grid 实例。使用此处找到的响应,如何从 Ant 构建中运行 Selenium 2 Grid?,我能够使用以下 build.xml 成功启动 Grid

<project name="selenium-grid" default="launch-hub" basedir=".">
  <property name="selenium.version" value="2.28.0"/>
  <property name="sauce.version" value="1.0.8"/>
  <path id="selenium.classpath">
    <pathelement path="${basedir}/"/>
    <fileset dir="${basedir}/">
      <include name="selenium-server-standalone-${selenium.version}.jar"/>      
      <include name="sauce-grid-plugin-${sauce.version}.jar"/>  
    </fileset>
    <pathelement path="${java.class.path}/"/>
  </path>
  <target name="launch-hub"
          description="Launch Selenium Hub">
    <java classname="org.openqa.grid.selenium.GridLauncher"
          classpathref="selenium.classpath"
          fork="true"
          failonerror="true">       
      <arg value="-role"/>
      <arg value="hub"/>      
    </java>    
  </target>
</project>
蚂蚁发射中心

继续前进,我想将 Sauce Labs Grid 插件与 Selenium Grid 一起使用,可以在此处找到: https ://github.com/rossrowe/sauce-grid-plugin/wiki 在 wiki 之后,我可以启动这两个在我的 Windows 机器上使用 DOS 中的以下内容

java -cp selenium-server-standalone-2.25.0.jar;sauce-grid-plugin-1.0.7.jar org.openqa.grid.selenium.GridLauncher -role hub -servlets com.saucelabs.grid.SauceOnDemandAdminServlet,com. saucelabs.grid.SauceOnDemandConsoleServlet

现在我想通过将目标“launch-hub”添加到 Sauce labs“servlet”的参数来合并 Sauce lab Servlet(抱歉在发布真实代码时遇到问题)

arg 值 =“-servlets”
arg value="com.saucelabs.grid.SauceOnDemandAdminServlet,com.saucelabs.grid.SauceOnDemandConsoleServlet"

我重新启动使用

蚂蚁发射
这是Windows返回的错误:

发射中心:
     [java] 1 月 17 日。2013 10:58:40 org.openqa.grid.selenium.GridLauncher 主
     [java] INFO:启动 selenium 网格服务器
     [java] 1 月 17 日。2013 10:58:50 org.openqa.grid.web.utils.ExtraServletUtil createServlet
     [java] 注意:指定的类:com.saucelabs.grid.SauceOnDemandAdminServlet 无法实例化 com.sau
celabs.grid.SauceOnDemandAdminServlet
     [java] 1 月 17 日。2013 10:58:50 org.openqa.grid.web.utils.ExtraServletUtil createServlet
     [java] 注意:指定的类:com.saucelabs.grid.SauceOnDemandConsoleServlet 无法实例化 com.s
aucelabs.grid.SauceOnDemandConsoleServlet
     [java] 2013-01-17 10:58:50.806:INFO:osjs.Server:jetty-7.xy-SNAPSHOT
     [java] 2013-01-17 10:58:50.866:INFO:osjsh.ContextHandler:started osjsServletContextHandler{/,null}
     [java] 2013-01-17 10:58:50.876:INFO:osjs.AbstractConnector:Started SocketConnector@0.0.0.0:4444`在此处输入代码

Selenium Grid 启动但没有 servlet,因此没有 Saucelabs 访问

有任何想法吗?

更新使用 1.0.7 的酱汁插件让它工作。不支持 1.0.8 版本

4

1 回答 1

1

通过使用带有额外参数的 build.xml,我能够使用 Sauce Grid 插件成功运行网格服务器,例如

<project name="selenium-grid" default="launch-hub" basedir=".">
    <property name="selenium.version" value="2.25.0"/>
    <property name="sauce.version" value="1.0.8"/>
    <path id="selenium.classpath">
        <pathelement path="${basedir}/"/>
        <fileset dir="${basedir}">
            <include name="selenium-server-standalone-${selenium.version}.jar"/>
            <include name="sauce-grid-plugin-${sauce.version}.jar"/>
        </fileset>
        <pathelement path="${java.class.path}/"/>
    </path>
    <target name="launch-hub"
            description="Launch Selenium Hub">
        <java classname="org.openqa.grid.selenium.GridLauncher"
              classpathref="selenium.classpath"
              fork="true"
              failonerror="true">
            <arg value="-servlets"/>
            <arg value="com.saucelabs.grid.SauceOnDemandAdminServlet,com.saucelabs.grid.SauceOnDemandConsoleServlet"/>
            <arg value="-role"/>
            <arg value="hub"/>
        </java>
    </target>
 </project>

通过查看 Selenium Grid 代码,生成输出中出现的错误是在抛出 ClassNotFoundException 时生成的……你能检查一下 sauce-grid-plugin jar 文件是否位于 ${basedir} 中吗?

于 2013-01-18T03:41:50.540 回答