【发布时间】:2018-02-05 11:33:12
【问题描述】:
我正在使用 selenium 网络驱动程序 3.4.0。我已下载 IEDriver.exe 并复制到 bin 文件夹。我有一个 MVC 应用程序,它将为给定的链接截取屏幕截图。该链接可以是任何网站的任何内容。我们需要为该网页截取屏幕截图并将其存储到 PDF 中。 现在,我使用 C# 创建了控制台应用程序并添加了 WebDriver.dll。调用控制台应用程序时,该应用程序工作正常。已截屏。
当从 MVC Web 应用程序调用相同的代码时,它会截取网页的屏幕截图,但它是黑色的。这有什么原因吗?
var options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
var driver = new InternetExplorerDriver(options);
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("URL TO BE BROWSED");
var screenshot = ((ITakesScreenshot)driver).GetScreenshot();
screenshot.SaveAsFile("Test.png", ScreenshotImageFormat.Png);
driver.Quit();
【问题讨论】:
-
这条评论有帮助吗? stackoverflow.com/questions/17347451/…(见STA部分)
-
这在万一情况下不起作用。我们已经尝试过 WebBrowser 选项。我猜它不允许您指定代理详细信息。
-
通常,浏览器会将重新渲染的 PDF 卸载到 adobe 控件,而不是浏览器本身。如果您有 pdf,为什么不保存整个 pdf 而不是尝试截屏。
-
我们需要获取多个网页的截图,然后从图像中读取流(我们不会在服务器上存储任何内容。我们只会读取流)并将其添加到 PDF 中。
标签: c# asp.net-mvc selenium