【问题标题】:How to set focus to a window in java.awt.Robot如何在 java.awt.Robot 中将焦点设置到窗口
【发布时间】:2013-02-22 20:21:05
【问题描述】:

我正在使用 selenium Web 驱动程序来自动化我的 Web 应用程序。我正在使用java.awt.robot 类截屏。当我运行我的测试时,它会打开浏览器,它会按照我的需要执行,它会在桌面屏幕上截取前窗口的屏幕截图。

实际需要:

我最小化了由 selenium 打开的浏览器窗口的屏幕,并在某些应用程序中执行了一些其他操作。在这种情况下,我的测试用例将完美执行,但屏幕截图不是浏览器窗口,而是我打开的应用程序。

我还需要在浏览器窗口最小化时对其进行截图。

可以使用Robot吗?我并不是说我需要单独使用机器人类来截图。也请建议我其他方法。

请考虑我需要不使用 TakesScreenshot 类 selenium API 的屏幕截图。

【问题讨论】:

    标签: java selenium webdriver screenshot awtrobot


    【解决方案1】:

    据我所知,如果我们在屏幕上显示其他内容,我们将无法使用 Robot 类来拍摄浏览器窗口的快照。这是为了捕捉当前在您的 PC 屏幕上发生的任何事情。 谢谢

    【讨论】:

    • @Deepu:感谢您的回复。除了Robot有没有可能实现上述场景?
    • @Andrew Thompson:谢谢 :)
    • @Manigandan :我们在 Selenium 本身中使用 Selenium 的类来截取屏幕截图。您能具体说明一下为什么要使用其他方式吗?
    • @Deepu:如果我们使用 IE 的TakesScreenshot 类截屏,则意味着它将重新调整窗口大小以截屏。我不希望那件事发生。因为我更喜欢另一种方式。
    • @Manigandan : 好的 :) 抱歉,除了这 2 个 :(
    【解决方案2】:

    试试这个:

    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        try {
            FileUtils.copyFile(scrFile, new      File(System.getProperty("user.dir")+"\\screenshots\\"+fileName+".jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }      
    

    【讨论】:

    • 请阅读我需要在不使用TakeScreenshot API 的情况下截屏的帖子。提供与问题相关的答案。
    猜你喜欢
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2014-06-20
    • 1970-01-01
    相关资源
    最近更新 更多