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