在selenium中截屏时,如果我使用句点(.(运算符提及目标文件夹路径而不是完整路径,则代码返回错误:
java.io.FileNotFoundException:.\Screenshot\shot1.jpeg(系统找不到指定的路径(
我正在为文件夹变量使用点运算符。根据我的理解,点的意思是,它代表项目文件夹。然而,如果我使用实际路径";F:/SeleniumRevisit/Screenshot/shot1.jpeg";,代码运行正常,没有任何问题。我的项目文件夹是SeleniumRevisit,它位于F:drive中。如有任何帮助,我们将不胜感激。
代码:
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);
}
}
//要捕获屏幕截图并保存目的地,请使用此代码。文件截图=((TakesScreenshot(驱动程序(.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());
}
您可以尝试使用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();
}