0

在 selenium 中截屏时,如果我使用 dot(.) 运算符提及目标文件夹路径而不是完整路径,则代码将返回错误:

java.io.FileNotFoundException: .\Screenshot\shot1.jpeg(系统找不到指定的路径)

我对文件夹变量使用点运算符。根据我的理解,点的意思是,它代表项目文件夹。但是,如果我使用实际路径“F:/SeleniumRevisit/Screenshot/shot1.jpeg”,则代码可以正常工作。我的项目文件夹是 SeleniumRevisit,它位于 F: 驱动器中。任何帮助,将不胜感激。

代码 :

import java.io.File;
import java.io.IOException;

import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.io.FileHandler;

public class Screenshot_getScreenshotAs 
{
    public static void main(String[] args) throws InterruptedException, IOException 
    {
        String key="webdriver.chrome.driver";
        String value="./Drivers/chromedriver.exe";
        System.setProperty(key,value);
        WebDriver driver=new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("http://demo.guru99.com/test/simple_context_menu.html");
        Thread.sleep(2000);
        TakesScreenshot ts=(TakesScreenshot) driver;
        File src=ts.getScreenshotAs(OutputType.FILE);
        File dst=new File("./Screenshot/shot1.jpeg");       
        FileHandler.copy(src,dst);
    }
}
4

2 回答 2

0

您可以尝试使用 user.dir 给出文件夹和屏幕截图名称

   public static void fullPageScreenShot() {
   String screens = System.getProperty("user.dir") + 
    "./Screenshot/shot1.jpeg";
    File screenshot = 
         ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
    try {
        FileHandler.copy(screenshot, new File(screens));
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }
    //closing the webdriver
    driver.close();
    }
于 2021-04-17T15:30:04.317 回答
0

//要捕获屏幕截图并保存目的地,请使用此代码。文件截图 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

    //BY try catch block.
    try {
        FileUtils.copyFile(screenshot, new 
      File("C:\\projectScreenshots\\homePageScreenshot.png"));
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
于 2021-04-17T10:55:53.367 回答