我通过Visual Studio和Chrome网络驱动程序使用selenium。
到目前为止,这么好。现在我想在点击汉堡包菜单后截取我的网页截图(最终目标是在扩展汉堡包菜单的同时显示我的网页的屏幕截图)。
使用Selenium我有
_webDriver.Navigate().GoToUrl(url);
IWebElement menu = _webDriver.FindElement(By.Id("hamburgerLink"));
var screenshot = _webDriver.GetScreenshot();
menu.Click();
System.Threading.Thread.Sleep(5000); //test
var fileName = "myImage.png";
var origFile = _testImagesPersistentPath + fileName;
screenshot.SaveAsFile(origFile, OpenQA.Selenium.ScreenshotImageFormat.Png);
这可以按预期保存,但是当我查看图像时,图像是在执行点击之前的我的网页(一个封闭的汉堡包菜单)。我不妨在menu.Click();
正如您所看到的,我在Sleep(5000)
之后添加了menu.Click();
进行测试,但同样的问题还在继续......
我做错了什么?
答案 0 :(得分:1)
您执行在menu.Click();
之前截取屏幕截图。您只需将其保存到文件中
menu.Click();
var screenshot = _webDriver.GetScreenshot();
答案 1 :(得分:1)
更改陈述位置
而不是:
var screenshot = _webDriver.GetScreenshot();
menu.Click();
改变这个:
menu.Click();
var screenshot = _webDriver.GetScreenshot();