我一直在研究如何使用selenium web驱动程序来截取网页的屏幕截图。结果看起来很有希望。我唯一的问题是从我能找到的所有例子中(例如Take a screenshot with Selenium WebDriver),它只允许你导航到一个网页,然后拍摄一个快照,只给你一个页面的初始状态。然而,我需要截图的网页有很多JS内容和用户交互。可以在selenium中设置网页的当前状态吗?
例如,一个用户登录了我的应用程序,点击了几个按钮,打开了一个模式对话框。如何截取包含用户已执行的所有用户交互的页面截图?
我所能想到的就是将整个HTML文档发送到服务器并生成一个静态的html页面,然后让webdirver为这个静态的html页面截图。
提前进行Thx检查。
发布于 2015-09-24 09:54:45
你可以,但据我所知,你仍然需要调用代码来自己截图。所以我们所做的是创建实用方法,我们调用这些方法来与网页交互,并在每次交互后截取屏幕截图。例如,我们有许多与此类似的方法:
protected void waitAndSelectLabeled(String label, String text) throws InterruptedException {
jGrowl("Select " + text + " labeled with " + label);
waitAndSelectBy(By.xpath("//th/label[contains(text(), '" + label + "')]/../following-sibling::*//select"), text);
screenshot();
}发布于 2015-09-24 10:04:46
你可以随时截取页面的屏幕截图...当您想要捕获页面的当前状态时,只需调用代码即可。您已经在该链接中拥有代码。
发布于 2015-09-24 18:30:45
您可以随时调用一些类似的函数
private static void screenshot(int i)
{
driver.manage().window().maximize(); \\Maximize to capture complete screen
Thread.sleep(1000);
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("C:\\screenshot"+i+".png"), true); \\To avoid overwritting of screenshots. We used 'i'.
}https://stackoverflow.com/questions/32751657
复制相似问题