通过浏览器内的VNC连接自动完成任务

时间:2016-03-16 20:19:27

标签: python python-2.7 selenium selenium-webdriver macros

首先,总体而言,我正在努力实现的是基本机器(如在VPS中)通过Firefox使用Python运行自动化任务。

现在的目标或目标是让Firefox在浏览器中运行给定的任务,然后使用VNC连接连接到VPS(通过浏览器),并控制或发布任务以及该VPS(这是那部分我遇到了麻烦);同时尽可能减少内存,以实现最高效率。

举个例子,如果您使用过Digital Ocean,可以在当前浏览器中查看VPS的特定屏幕或终端。

要明确的是,我用来运行基本进程的VPS OS是Linux,尽管程序连接的VPS(通过浏览器)使用的是Windows操作系统。像这样的东西可以说(注意我没有截图):

enter image description here

我的问题在于,在使用Python中的Selenium(使用Firefox)运行所有脚本任务后,一旦我在浏览器中打开VPS,我就无法弄清楚如何正确访问它或发布作业完成。

我想过可能使用鼠标点击的(x,y)坐标,虽然我不能说这会完全奏效(我用iMacros进行了测试,但还不是Selenium)。

简而言之,我在Firefox中运行基本任务,然后连接到VPS,最后发布更多任务,从Firefox到使用Windows操作系统环境的VPS完成。

关于如何使这个过程更简单,更有效或更可靠的建议?

1 个答案:

答案 0 :(得分:1)

java中有一个名为Robot类的类,它可以处理几乎所有的键盘操作

python gtk.gdk.Display中存在一个similer事物。

请参阅以下内容: -

Is there a Python equivalent to Java's AWT Robot class?

Take a screenshot via a python script. [Linux]

OR

Python ctypes keybd_event simulate ctrl+alt+delete

演示java代码: -

 try{   
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_DELETE);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyRelease(KeyEvent.VK_ALT);
    robot.keyRelease(KeyEvent.VK_DELETE);

 }
 catch(Exception ex)
 {
     System.out.println(ex.getMessage());
 }

希望它会对你有所帮助:)。