在Windows XP中,可以按Alt-PrintScreen复制活动窗口的图像,或按Ctrl-PrintScreen复制完整桌面的图像.
然后可以将其粘贴到接受图像的应用程序中:Photoshop,Microsoft Word等.
我想知道:有没有办法将屏幕截图直接保存到文件中? 我是否真的必须打开一个图像程序,如Paint.net或Photoshop,只需粘贴图像,然后保存它?
截取网页截图的最佳方法是什么?目前我刚刚开始使用firefox的selenium实例并使用winapi将其带到前面并制作屏幕截图.我 已经问过类似的问题了.
有两点:
是否有任何方法可以更加"编程"截屏?
这是我现在使用的一些代码:
class FirefoxDriverEx : FirefoxDriver
{
public Process GetFirefoxProcess()
{
var fi = typeof(FirefoxBinary).GetField("process", BindingFlags.NonPublic | BindingFlags.Instance);
return fi.GetValue(this.Binary) as Process;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是说明截屏过程的代码:
using (FirefoxDriverEx driver = new FirefoxDriverEx())
{
driver.Navigate().GoToUrl(url);
var process = driver.GetFirefoxProcess();
if (process != null)
{
var screenCapture = new ScreenCapture();
Win.SetForegroundWindow(process.MainWindowHandle.ToInt32());
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我正在考虑一些控制窗口队列的管理员来截取屏幕截图.
问题编辑.
我不是在寻找一种解决方案,只需在内存中获取屏幕截图并将其返回到HTTP流.因此,任何保存屏幕截图并将其保存到文件然后从那里获取的方法都非常模糊.
问题编辑#2.
我忘了提.需要的截图应该按照用户的看法进行.因此,截图应该有浏览器窗口和Web浏览器窗口边界内的网站.我找不到任何方法来改变在硒的WebDriver中截取屏幕截图的模式.WebDriver只是在没有任何浏览器窗口的情况下获取页面的屏幕截图.
我想在我们的一个网站上添加一个按钮,允许用户通过我们的错误跟踪系统提交错误.
其中一个功能请求是发送相关页面的屏幕截图.
如果没有在最终用户机器上安装,我该怎么办?javascript是否有某种屏幕上限api?
我想使用selenium c#捕获下拉列表中显示的选项的屏幕截图,就像下面显示的图像一样.
我尝试了多种方法来截取屏幕截图.基本上我要扩展元素的下拉列表以捕获屏幕截图.这就是我所做的
//#1
var element = Driver.FindElement(By.Id("carsId"));
Actions builder = new Actions(Driver);
builder.SendKeys(element, Keys.LeftAlt + Keys.Down).Build().Perform();
//#2
Actions act = new Actions(Driver);
act.MoveToElement(element).Build().Perform();
Run Code Online (Sandbox Code Playgroud)
当我在网站上完成但没有通过selenium工作时,按下Alt+ Down键的第一个实现工作.第二个实现也不起作用.我也试过builder.ClickAndHold()方法.
我在这里还有另一个问题.是否真的有可能硒点击并扩展一段时间,直到抓住屏幕?
任何帮助将不胜感激.
我在应用程序中使用自定义代码绘制了4个图表....
我还有一个rdlc水晶报告输出数据而不是图表...
我要做的是在报告中添加图表.
我可以在报告中添加一个Chart对象,但我不知道如何编程,因为它在报告中...我不知道如何通过reportviewer引用它...
只有解决方案似乎是DataSet绑定,但我太困惑了,它应该定制很多...不知道是否有可能没有编写源代码..任何想法?请帮助这是一件令人头疼的事
我几乎没有资源在数百个不同网页的许多项目上进行测试,最繁琐的部分是验证网站的外观和感觉是否正常.特别是HTML元素的布局不会被破坏.
有没有办法通过不开发高度复杂的AI工具来自动化这种测试?:)
我正在使用一个具有4个输出(监视器)的系统,每个输出有1280x1024像素.我需要整个桌面和所有打开的应用程序的屏幕截图.
我试过GetDesktopWindow()(MSDN)但它无法正常工作.某些表单未显示在捕获的图片上.
c# screenshot multiple-monitors desktop-application multiscreen
我发现代码在某处,我发现它非常有用,但我想找到一种方法使其工作,因此它只捕获给定的窗口目标.也许使用processID或Window Name.即使该窗口未激活.
我不想让那个窗口处于活动状态,但是想要获得一个屏幕截图,就好像我正在使用Alt + PrintScreen一样.
这是适用于全屏捕获的代码
Private bmpScreenShot As Bitmap
Private gfxScreenshot As Graphics
bmpScreenShot = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb)
gfxScreenshot = Graphics.FromImage(bmpScreenShot)
gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy)
bmpScreenShot.Save(fileName, ImageFormat.Png)
Run Code Online (Sandbox Code Playgroud)
我使用Visual Basic 2008 Express
先感谢您!
我正在尝试使用 .NET Framework 编写一个控制台应用程序。我想截图我的屏幕。我已经使用过其他答案,如下所示:
问题是这并不能捕获我的整个屏幕。底部和右侧大约缺失 1/5。
如何使用 C# .NET Framework 捕获整个屏幕?
我使用SpecFlow与硒的webdriver和SpecRun为测试运行,以创建和执行自动化测试案例,我正在寻找一个解决方案,在插入测试执行报告截图.
我写了一个方法来在每个Assert函数后创建截图.图像保存到特定位置,但是当我进行结果分析时,我必须遵循报告和图像.将它们放在同一位置(恰好在报告html中)会很不错.
有没有办法执行此操作(类似于控制台输出)?
c# ×6
screenshot ×5
.net ×3
selenium ×3
c#-4.0 ×1
capture ×1
javascript ×1
multiscreen ×1
screen ×1
specflow ×1
specrun ×1
testing ×1
vb.net ×1
web ×1
web-testing ×1
winapi ×1
windows ×1