Java Selenium IFrame屏幕截图
如何制作IFrame元素的屏幕截图? 我使用以下代码:Java Selenium IFrame屏幕截图,java,c#,Java,C#,如何制作IFrame元素的屏幕截图? 我使用以下代码: public static void SaveScreenShot(IWebDriver driver, IWebElement element) { // Take ScreenCap of Entire Screen var screenshotDriver = driver as ITakesScreenshot; Screenshot screenshot = screenshotDriver.GetScre
public static void SaveScreenShot(IWebDriver driver, IWebElement element)
{
// Take ScreenCap of Entire Screen
var screenshotDriver = driver as ITakesScreenshot;
Screenshot screenshot = screenshotDriver.GetScreenshot();
var bmpScreen = new Bitmap(new MemoryStream(screenshot.AsByteArray));
// Crop ScreenCap to Element
var cropArea = new Rectangle(element.Location, element.Size);
Bitmap bmpCrop = bmpScreen.Clone(cropArea, bmpScreen.PixelFormat);
//Save
bmpCrop.Save("D://img//screen.jpeg", ImageFormat.Jpeg);
}
但是它捕获了元素后面的屏幕,因此是主页,而不是iFrame。在进行屏幕截图之前,我切换到帧:
driver.SwitchTo().Frame(puzzleFrame);
尝试driver.SwitchTo().DefaultContent().Frame(拼图框)代码>。也可以考虑,在屏幕截图之前,切换可能不会发生得太快。请尝试<代码>驱动程序。代码>。也可以考虑,切换可能不会发生得足够快,才可以进行截图。