使用Java从linux机器远程杀死Internet Explorer实例

时间:2017-09-01 16:10:47

标签: java selenium selenium-iedriver

我有几个 Selenium 测试从 Jenkins (在Linux上)远程运行到使用 Selenium Grid 的Windows计算机。在测试开始之前,我需要一种可靠kill IE的所有实例的方法。这些测试都使用TestNG端到端运行,因此需要在@BeforeMethod的每个测试开始时执行此方法。我知道如何使用Java来kill任务,但由于代码实际部署在Linux机器上,因此我不知道如何工作(据我所知)。任何帮助,将不胜感激!

3 个答案:

答案 0 :(得分:1)

您可以使用winrm4j从远程Windows框中的java代码执行命令。类似的东西:

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"       xmlns:v7="urn://oracle.bi.webservices/v7">
   <soapenv:Header/>
   <soapenv:Body>
      <v7:executeXMLQuery>
        <v7:report>
         <v7:reportPath>absolute_report_path
         </v7:reportPath>
         <v7:reportXml></v7:reportXml>
         </v7:report>
         <v7:outputFormat></v7:outputFormat>
         <v7:executionOptions>
            <v7:async></v7:async>
            <v7:maxRowsPerPage></v7:maxRowsPerPage>
            <v7:refresh></v7:refresh>
            <v7:presentationInfo></v7:presentationInfo>
            <v7:type></v7:type>
         </v7:executionOptions>
         <v7:reportParams>
            <!--Zero or more repetitions:-->
            <v7:filterExpressions></v7:filterExpressions>
            <!--Zero or more repetitions:-->
            <v7:variables>
               <v7:name></v7:name>
               <v7:value></v7:value>
            </v7:variables>
            <!--Zero or more repetitions:-->
            <v7:nameValues>
               <v7:name></v7:name>
               <v7:value></v7:value>
            </v7:nameValues>
            <!--Zero or more repetitions:-->
            <v7:templateInfos>
               <v7:templateForEach></v7:templateForEach>
               <v7:templateIterator></v7:templateIterator>
               <!--Zero or more repetitions:-->
               <v7:instance>
                  <v7:instanceName></v7:instanceName>
                  <!--Zero or more repetitions:-->
                  <v7:nameValues>
                     <v7:name></v7:name>
                     <v7:value></v7:value>
                  </v7:nameValues>
               </v7:instance>
            </v7:templateInfos>
            <!--Optional:-->
            <v7:viewName></v7:viewName>
         </v7:reportParams>
         <v7:sessionID>session_id_Earlier_Generated</v7:sessionID>
      </v7:executeXMLQuery>
   </soapenv:Body>
</soapenv:Envelope>

答案 1 :(得分:1)

您可以使用一些远程管理工具,也可以只创建一个微服务,它将在目标工作站上运行,并接受带有远程文件系统/任务管理命令的http请求。

选中此article,其中介绍了如何为此类任务构建简单服务和Jenkins插件。还有关于来源的链接。

答案 2 :(得分:0)

在Windows PC上创建一个bat文件并写下以下行

taskkill /F /IM iexplore.exe /T

它会杀死Internet Explorer的所有实例。 现在,每次您想要确保所有Internet Explorer实例都已关闭。运行此bat文件