使用ChromeDriver的GetScreenshot错过了上次操作

时间:2013-12-24 11:38:53

标签: selenium screenshot selenium-chromedriver

我已经创建了一个Selenium测试,我点击一个表单并在之后截取屏幕截图,当我运行我的测试时,它可以正常使用IE和Firefox驱动程序,但使用Chrome浏览器看起来截图太快了。

这是我的代码:

  IWebDriver driver = new FirefoxDriver();
  driver.Navigate().GoToUrl("http://www.klein.nl/contact/");
  driver.Manage().Window.Maximize();

  var sendButton = driver.FindElement(By.XPath("//button[@title='Bevestig']"));
  sendButton.Click();

  var screenshotFF = ((ITakesScreenshot)driver).GetScreenshot();
  driver.Quit();

  driver = new InternetExplorerDriver(@"C:\Selenium Drivers", new InternetExplorerOptions() { IntroduceInstabilityByIgnoringProtectedModeSettings = true });
  driver.Navigate().GoToUrl("http://www.klein.nl/contact/");
  driver.Manage().Window.Maximize();
  sendButton = driver.FindElement(By.XPath("//button[@title='Bevestig']"));
  sendButton.Click();

  var screenshotIE = ((ITakesScreenshot)driver).GetScreenshot();
  driver.Quit();

  driver = new ChromeDriver(@"C:\Selenium Drivers");
  driver.Navigate().GoToUrl("http://www.klein.nl/contact/");
  driver.Manage().Window.Maximize();
  //driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 5));

  sendButton = driver.FindElement(By.XPath("//button[@title='Bevestig']"));
  sendButton.Click();

  var screenshotChrome = ((ITakesScreenshot)driver).GetScreenshot();
  driver.Quit(); 

当我查看屏幕截图时,最后一个屏幕截图不会显示带红色边框的输入文本框。 如何防止屏幕截图过早拍摄?

1 个答案:

答案 0 :(得分:0)

在sendButton.Click()之后进行一些同步;例如,等待提到的输入文本框。