【发布时间】:2017-01-31 05:06:44
【问题描述】:
我正在使用 selenium 在 java 中开发一个自动化项目。当出现故障时,需要对网页视图进行截图。使用了TakesScreenshot,它在 chrome-driver 和 phantomjs-driver 中都可以正常工作。
但是当出现警告框时,这会失败。经过一番研究,我了解到如果存在警报,Selenium 无法截取屏幕截图。必须首先处理警报。我可以使用java.awt.Robot,在这种情况下,我的屏幕截图中需要警告框。
但是如果使用 phantomjs-driver 或者如果 chrome 正在最小化运行,Robot 会截取我的屏幕截图并且不会获得网络视图。但我需要带有警报框的屏幕截图(代表失败情况)。
这个问题还有其他解决方案吗?
【问题讨论】:
-
是否有任何特定的依赖性使您可以在最小化窗口中运行它?因为它没有被最小化机器人应该给你所需要的。
-
包括“最小化”,因为如果我在同一个系统中做一些其他工作,而自动化过程正在最小化的浏览器中运行。无论如何,如果这将使用 phantomjs,
Robot不会给出必要的图像吗? -
机器人截图就像点击键盘上的 prtscrn 按钮一样好。所以如果它捕获了屏幕上可见的所有内容。只要看看你是否对活动进行计时,以便窗口在警报框出现时最大化出现..
-
好的。这意味着,如果使用
phantomjs驱动程序,则无法获取屏幕截图?在这种情况下,请提出替代解决方案。我找不到任何谷歌搜索。 -
如果是 web 自动化.. 你可以使用 Selenium webdriver 自动化 web 部件,截图部分可以在 java 的 Robot Class 中轻松完成。这里的 RobotFramework 是指 Java 中的 Robot 类还是基于 python 的 RobotFramework?
标签: java selenium selenium-webdriver phantomjs