Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过任何脚本语言将控制从本地计算机传递到虚拟机?_Java_Selenium - Fatal编程技术网

Java 如何通过任何脚本语言将控制从本地计算机传递到虚拟机?

Java 如何通过任何脚本语言将控制从本地计算机传递到虚拟机?,java,selenium,Java,Selenium,我正在尝试构建一个selenium(Java)脚本,它通过本地机器的RDP连接到虚拟机,连接到虚拟机后,我需要从虚拟机中的当前脚本运行一些命令。我面临的问题是,来自本地计算机的控制无法进入虚拟机,因为我无法在其中运行任何脚本或命令。请让我知道如何将控制从本地计算机传递到虚拟机。更具体地说,在本地机上运行的selenium脚本是否能够执行任何操作虚拟机中的操作,该虚拟机由本地计算机中运行的相同selenium脚本打开。如果您的虚拟机是linux,则可以使用jcraft进行控制 注意:您应该启用SS

我正在尝试构建一个selenium(Java)脚本,它通过本地机器的RDP连接到虚拟机,连接到虚拟机后,我需要从虚拟机中的当前脚本运行一些命令。我面临的问题是,来自本地计算机的控制无法进入虚拟机,因为我无法在其中运行任何脚本或命令。请让我知道如何将控制从本地计算机传递到虚拟机。更具体地说,在本地机上运行的selenium脚本是否能够执行任何操作虚拟机中的操作,该虚拟机由本地计算机中运行的相同selenium脚本打开。

如果您的虚拟机是linux,则可以使用jcraft进行控制

注意:您应该启用SSH并对VM中的22端口进行本地IP访问

  • 从maven central repo下载jcraft


  • 如果您的虚拟机是linux,则可以使用jcraft进行控制

    注意:您应该启用SSH并对VM中的22端口进行本地IP访问

  • 从maven central repo下载jcraft


  • 这可能是不可能的。您的脚本可以调用RDP协议来调用VM,但VM是单独的实例,它有自己的内核和用户空间。您运行的脚本将位于不同的内核和用户空间。两者都不共享相同的内核和用户空间来访问空间之间的值

    这可能是不可能的。您的脚本可以调用RDP协议来调用VM,但VM是单独的实例,它有自己的内核和用户空间。您运行的脚本将位于不同的内核和用户空间。两者都不共享相同的内核和用户空间来访问空间之间的值

    不必将selenium保留在本地并连接到虚拟机,我们可以直接在虚拟机中进行完整的设置吗?您可以详细解释脚本吗?我想要一个selenium脚本,它可以自动签出虚拟机(VD)并通过RDP连接到IP地址,并在虚拟机中启动jenkins slave node。我们不需要将selenium保留在本地并连接到虚拟机,而是可以直接在虚拟机中进行完整的设置吗?能否详细解释脚本?我想要一个selenium脚本,它可以自动签出虚拟机(VD)并通过RDP连接到IP地址,并在虚拟机中启动jenkins从属节点。谢谢您的回答,先生。但我的虚拟机是Windows server 2008/2016计算机。您能告诉我在这种情况下如何执行上述操作吗?谢谢您的回答,先生。但我的虚拟机是Windows server 2008/2016计算机。你能让我知道在这种情况下如何执行上述操作吗。
    public class ssh {
    
        /**
         * JSch Example Tutorial
         * Java SSH Connection Program
         */
        @Test
        public static void connection(String host,String user, String password, String command) {
    
            try{
    
           java.util.Properties config = new java.util.Properties(); 
                config.put("StrictHostKeyChecking", "no");
                JSch jsch = new JSch();
                Session session=jsch.getSession(user, host, 22);
                session.setPassword(password);
                session.setConfig(config);
                session.connect();
                System.out.println("Connected");
    
                Channel channel=session.openChannel("exec");
                ((ChannelExec)channel).setCommand(command);
                channel.setInputStream(null);
                ((ChannelExec)channel).setErrStream(System.err);
                InputStream in=channel.getInputStream();
                channel.connect();
                byte[] tmp=new byte[1024];
                while(true){
                  while(in.available()>0){
                    int i=in.read(tmp, 0, 1024);
                    if(i<0)break;
                    System.out.print(new String(tmp, 0, i));
                  }
                  if(channel.isClosed()){
                    System.out.println("exit-status: "+channel.getExitStatus());
                    break;
                  }
                  try{Thread.sleep(1000);}catch(Exception ee){}
                }
                channel.run();
                channel.disconnect();
                session.disconnect();
                System.out.println("DONE");
    
            }catch(Exception e){
    
            }
    
        }
    
    }
    
    public class start{
    static WebDriver driver;
        public static void main(String[], args)
        {
        //connect your VM by using method from ssh class
      ssh.connection("10.200.10.1", "userName", "password", "sudo service jenkins start");
        //execute selenium command once application started
           driver.findElement(By.xpath(".//*[@id='usr']")).sendKeys("Stack");
         //execute another command inside VM
    ssh.connection("10.200.10.1", "userName", "password", "cd /var/lib/jenkins/workspace && ls");
        }
    }