Click()后Selenium截图不准确

时间:2017-09-10 09:01:24

标签: c# selenium selenium-webdriver visual-studio-2015

我通过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();进行测试,但同样的问题还在继续......

我做错了什么?

2 个答案:

答案 0 :(得分:1)

执行menu.Click();之前截取屏幕截图。您只需将其保存到文件中

menu.Click();
var screenshot = _webDriver.GetScreenshot();

答案 1 :(得分:1)

更改陈述位置

而不是:

    var screenshot = _webDriver.GetScreenshot();
    menu.Click();

改变这个:

    menu.Click();
    var screenshot = _webDriver.GetScreenshot();