【问题标题】:Automating Tasks through a VNC Connection within a Browser通过浏览器中的 VNC 连接自动执行任务
【发布时间】:2016-03-16 20:19:26
【问题描述】:

首先,总的来说,我想要完成的是让一台基本机器(如在 VPS 中)使用 Python 通过 Firefox 运行自动化任务。

现在的目标或目标是让 Firefox 在浏览器本身中运行给定的任务,然后使用 VNC 连接连接到 VPS(通过浏览器),并控制或发出任务以及该 VPS(这是我遇到问题的部分);还需要尽可能少的内存以实现最高效率。

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

需要明确的是,我用来运行基本进程的 VPS 操作系统是 Linux,尽管程序(通过浏览器)连接到的 VPS 使用的是 Windows 操作系统。比如说这样的事情(注意我没有截屏):

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

我考虑过可能使用 (x,y) 坐标来进行鼠标点击,但我不能说这会完全有效(我使用 iMacros 对其进行了测试,虽然还没有使用 Selenium)。

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

关于如何使这个过程更简单、更高效或提高其可靠性的建议?

【问题讨论】:

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


    【解决方案1】:

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

    python gtk.gdk.Display 中存在类似的东西。

    参考以下:-

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

    Take a screenshot via a python script. [Linux]

    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());
     }
    

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2015-11-10
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多