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

C# selenium等待flash页面加载(document.ready),c#,selenium,flash,selenium-webdriver,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.Sle

我想在网页上做一个用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);

这里的一切工作,但等待加载。它需要加载屏幕的屏幕截图。我能做什么?

private WebDriverWait\u wait=new WebDriverWait(驱动程序,TimeSpan.FromSeconds(30))谢谢你的回答,但无论如何,我得到了加载屏幕。所以html被加载了,但flash加载对话框仍然出现在这里,这正是您的问题解决方案。您知道哪个包是
FlashSelenium
类吗?找不到它是的,它是
dll
在这里找到的:
private WebDriverWait\u wait=new WebDriverWait(驱动程序,TimeSpan.FromSeconds(30))谢谢你的回答,但无论如何,我得到了加载屏幕。所以html被加载了,但flash加载对话框仍然出现在这里,这正是您的问题解决方案。您知道哪个包是
FlashSelenium
类吗?无法找到它yetoh它是
dll
在这里找到的:如果您不想使用任何其他框架,只需添加一些代码,在截图之前等待网页上的特定文本。例如:尝试搜索特定文本是否可见,然后继续进行屏幕截图。@ChandraShekhar,但它是flash而不是html。那么我该怎么做呢?我们不是只有一个HTML元素要搜索吗?有body/div/object。这些标签加载速度很快,但对象标签(swf)中的内容不会加载。如果您不想使用任何其他框架,只需添加一些代码,在截图之前等待网页上的特定文本。例如:尝试搜索特定文本是否可见,然后继续进行屏幕截图。@ChandraShekhar,但它是flash而不是html。那么我该怎么做呢?我们不是只有一个HTML元素要搜索吗?有body/div/object。这些标记加载速度很快,但对象标记(swf)内的内容加载速度不快
//wait for load     
WaitForLoading(driver);

private void WaitForLoading(IWebDriver driver)
{
    var javascriptExecutor = (IJavaScriptExecutor)driver;
    _wait.Until(webDriver => javascriptExecutor.ExecuteScript("return document.readyState").ToString() == "complete");
}