我想在用flash写的网页上制作截图
为此,我有这段代码:
ChromeOptions options = new ChromeOptions();
IWebDriver driver = new ChromeDriver(options);
...
// I'm clicking on button whicch opens new browser window
driver.FindElement(By.ClassName("click_me")).Click();
Thread.Sleep(1500);
//switch to new window
driver.SwitchTo().Window(driver.WindowHandles.Last());
//maximize it
driver.Manage().Window.Maximize();
//wait for load
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
//and then take screenshot
Screenshot sc = ((ITakesScreenshot)driver).GetScreenshot();
sc.SaveAsFile(String.Format(@"{0}\{1}.{2}", Environment.GetFolderPath(Environment.SpecialFolder.Desktop), Guid.NewGuid(), ScreenshotImageFormat.Png), ScreenshotImageFormat.Png);
除了等待加载外,其他所有功能都可以。它需要加载屏幕的屏幕截图。我该怎么办?
答案 0 :(得分:0)
//wait for load
WaitForLoading(driver);
private void WaitForLoading(IWebDriver driver)
{
var javascriptExecutor = (IJavaScriptExecutor)driver;
_wait.Until(webDriver => javascriptExecutor.ExecuteScript("return document.readyState").ToString() == "complete");
}