加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 未在webdriver截图中显示鼠标交互

发布时间:2020-12-15 07:51:26 所属栏目:百科 来源:网络整理
导读:我目前正在使用Selenium WebDriver 2.35,并且在拍摄屏幕截图时遇到了障碍.我写了一个小函数,它接受一个I??WebElement并返回特定元素的屏幕截图.我试图截图的元素实际上是从精灵中提取的图像.但是这个元素很棘手,因为鼠标悬停/悬停时图像会从灰色变为真实颜色
我目前正在使用Selenium WebDriver 2.35,并且在拍摄屏幕截图时遇到了障碍.我写了一个小函数,它接受一个I??WebElement并返回特定元素的屏幕截图.我试图截图的元素实际上是从精灵中提取的图像.但是这个元素很棘手,因为鼠标悬停/悬停时图像会从灰色变为真实颜色(通过移动到精灵的不同部分).我可以通过此功能获得图像的正确截图,但无法识别鼠标与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:tmpss.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;
    }

解决方法

根据我的经验,通过Selenium Grid的自动化,没有看到鼠标.也许这是因为“鼠标”实际上是一个虚拟的Selenium鼠标,并且与系统本机鼠标驱动程序无关.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读