为了账号安全,请及时绑定邮箱和手机立即绑定

如何用Selenium WebDriver截图

/ 猿问

如何用Selenium WebDriver截图

PHP
慕慕森 2019-06-12 15:48:54

如何用Selenium WebDriver截图

有人知道是否可以使用Selenium WebDriver截图吗?(注:非硒RC)



查看完整描述

4 回答

?
慕斯卡0579475
public static void snapshot(TakesScreenshot drivername, String filename)
{
   // this method will take screen shot ,require two parameters ,one is driver name, another is file name
   File scrFile = drivername.getScreenshotAs(OutputType.FILE);
   // Now you can do whatever you need to do with it, for example copy somewhere
   try {
      System.out.println("save snapshot path is:"+filename);
      FileUtils.copyFile(scrFile, new File(filename));
   } catch (IOException e) {
      // TODO Auto-generated catch block
      System.out.println("Can't save screenshot");
      e.printStackTrace();
   }
   finally
   {
      System.out.println("screen shot finished");
   }
}
snapshot((TakesScreenshot)driver, imageFile);


https://img3.mukewang.com/5d6cd38300012f7905540154.jpg

截图是成功。如果如上图中文显示不出来,则是没有中文字体的缘故。安装中文(如宋体)则可解决问题。



查看完整回答
反对 回复 2019-09-02
?
慕容森

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

WebDriver driver = new FirefoxDriver();driver.get(" 
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy somewhereFileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));


查看完整回答
反对 回复 2019-06-12
  • qq_Mr鹿_0
    qq_Mr鹿_0
    请问下selenium进行 部分元素截图,然后采用base64编码格式保存,该如何才做呢?
?
慕田峪7331174

Python

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

from selenium import webdriver

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

令人困惑的是.get_screenshot_as_file(filename)方法也存在这样的情况。

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

注意WebElements有一个.screenshot()方法,该方法工作方式类似,但只捕获所选元素。


查看完整回答
反对 回复 2019-06-12
?
料青山看我应如是

C#

public void TakeScreenshot(){
    try
    {            
        Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();
        ss.SaveAsFile(@"D:\Screenshots\SeleniumTestingScreenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        throw;
    }}


查看完整回答
反对 回复 2019-06-12

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信