A.J*_*.J. 7 c# selenium screenshot webdriver mouseover
我目前正在使用Selenium WebDriver 2.35,并且在拍摄屏幕截图时遇到了障碍.我写了一个小函数,它接受一个IWebElement并返回特定元素的屏幕截图.我试图截图的元素实际上是从精灵中提取的图像.但是这个元素很棘手,因为鼠标悬停/悬停时图像会从灰色变为真实颜色(通过移动到精灵的不同部分).我可以通过此功能获得图像的正确截图,但无法识别鼠标与ITakesScreenshot的交互.我可以在浏览器中直观地看到图像悬停在上面,但屏幕截图不能.有什么想法吗?
public static Bitmap GetImage(IWebElement element)
{
RemoteWebDriver driver = BrowserManager.GetInstance().GetDriver();
Actions action = new Actions(driver);
//take screenshot of page
action.MoveToElement(element).Build().Perform();
Byte[] ba= ((ITakesScreenshot)driver).GetScreenshot().AsByteArray;
Bitmap ss = new Bitmap(new MemoryStream(ba));
//ss.Save("c:\\tmp\\ss.png", ImageFormat.Png);
Rectangle crop = new Rectangle(element.Location.X, element.Location.Y, element.Size.Width, element.Size.Height);
//create a new image by cropping the original screenshot
Bitmap image = ss.Clone(crop, ss.PixelFormat);
return image;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |