selenium等待flash页面加载(document.ready)

时间:2017-06-08 11:20:09

标签: c# selenium flash selenium-webdriver

我想在用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);

除了等待加载外,其他所有功能都可以。它需要加载屏幕的屏幕截图。我该怎么办?

1 个答案:

答案 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");
}