我目前正在使用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; }
解决方法
原文地址:https://www.jb51.cc/csharp/99705.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。