用Selenium WebDriver截图

有谁知道是否可以使用Selenium WebDriver截图? (注意:不是Selenium RC)


Java的

对的,这是可能的。 以下示例在Java中:

WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy somewhere
FileUtils.copyFile(scrFile, new File("c:tmpscreenshot.png"));

蟒蛇

每个WebDriver都有一个.save_screenshot(filename)方法。 所以对于Firefox,它可以像这样使用:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()

令人困惑的是,一个.get_screenshot_as_file(filename)方法也存在,可以做同样的事情。

还有一些方法: .get_screenshot_as_base64() (用于嵌入html)和.get_screenshot_as_png() (用于检索二进制数据)。

并注意WebElements有一个类似的.screenshot()方法,但只捕获选定的元素。


C#

public void TakeScreenshot()
{
    try
    {            
        Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();
        ss.SaveAsFile(@"D:ScreenshotsSeleniumTestingScreenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        throw;
    }
}
链接地址: http://www.djcxy.com/p/62559.html

上一篇: Take a screenshot with Selenium WebDriver

下一篇: how to load class dynamically at aar file with DexClassLoader