我正在使用Robot Framework来自动化网站。本网站使用Silverlight应用程序显示视频。
我的目标: 要在我的Robot Framework中创建一个带有web元素的自定义关键字,web元素就是Silverlight播放器在页面上的位置,并截取可见内容。我不需要与Silverlight应用程序进行交互。
已完成工作:
我已经创建了一个自定义关键字Capture Screenshot Of Element
,它接受一个web元素并返回该特定元素的屏幕截图。
但是,如果元素包含Silverlight应用程序,则我返回的所有内容都是空白背景颜色,而不是Silverlight应用程序上显示的图像。
有没有办法在浏览器中指定网页元素并显示该元素在屏幕上实际显示的内容?
答案 0 :(得分:0)
尽管这是一个非常老的问题,但是我之前遇到过类似的问题,想在这里分享细节。
当您使用Selenium库获取屏幕截图时,它将调用Web驱动程序方法将整个页面内容转换为图像。但是对于Silverlight组件,由于明显的原因,它无法捕获它。
解决方案是您需要获取当前的屏幕图像,而不是依赖浏览器。最简单的方法之一是使用机器人框架SikuliLibrary。它还具有Capture Region关键字,可以拍摄屏幕特定部分的快照。我希望这足以满足您的要求。