使用Selenium 3.6-Java-Webdriver拍摄屏幕截图
我无法在我的项目中截图。我正在使用Selenium 3.6版本和Java。这是我的密码:使用Selenium 3.6-Java-Webdriver拍摄屏幕截图,java,selenium,webdriver,Java,Selenium,Webdriver,我无法在我的项目中截图。我正在使用Selenium 3.6版本和Java。这是我的密码: File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png")); 不幸的是,“copyFile”给出了以下错误: The method copyFile(File, File) is unde
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
不幸的是,“copyFile”给出了以下错误:
The method copyFile(File, File) is undefined for the type FileUtils
我还导入了所有必需的软件包
有人能帮我截图吗?导入使用
导入org.apache.commons.io.FileUtils
。这将导入所需的FileUtils
类
我猜你导入了错误的包
检查这些包裹是否应该在那里
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
示例代码:
public class Takenscreensshot {
public static void main(String[] args) throws IOException {
WebDriver driver=new FirefoxDriver();
driver.get("https://www.google.co.in");
File src=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(src, new File("d:/ss.png"));
driver.close();
}
}
错误表明“copyFile”给出了一个错误。它说的是“FileUtils类型的copyFile(File,File)方法未定义”。可能
FileUtils
在您的导入中有多个定义。因此,解决方案如下:
- 仅限使用:
import org.apache.commons.io.FileUtils;
- 将代码更改为:
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); org.apache.commons.io.FileUtils.copyFile(scrFile, new File("C:\\tmp\\screenshot.png"));
String capture = "window.png";
try {
Thread.sleep(3000);
byte screenshot[] = (byte[])((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES);
FileOutputStream fos = new FileOutputStream(capture);
fos.write(screenshot);
}catch (Exception){ }
这对我来说是正确的。Selenium 3.6.0 FiltUtils中的快照不可用,因此需要使用FileHandler 以下是变化
import org.apache.commons.io.FileUtils
导入org.openqa.selenium.io.FileHandler代码>FileUtils.copyFile(SrcFile,DestFile)
toFileHandler.copy(SrcFile,DestFile)代码>
TakesScreenshot scrShot =(TakesScreenshot)driver;
File SrcFile= scrShot.getScreenshotAs(OutputType.FILE);
File DestFile=new File(System.getProperty("user.dir")+"\\"+"screenshot.png");
FileHandler.copy(SrcFile, DestFile);
有关更多信息,请查看。谢谢您的回复。。导入org.apache.commons.io.FileUtils;导入com.sun.jna.platform.FileUtils后显示错误“导入org.apache.commons.io无法解决”;此错误出现在FileUtils中,但在copyFile中,错误显示为“类型FileUtils的方法copyFile(File,File)未定义”。我仍然无法拍摄屏幕截图,我已导入所有正确的包。但是错误仍然是一样的..import org.openqa.selenium.OutputType;导入org.openqa.selenium.TakesScreenshot;导入org.openqa.selenium.WebDriver;导入org.openqa.selenium.chrome.ChromeDriver;导入java.io.File;导入org.apache.commons.io.FileUtils;这些是您在traceback或Logimport org.openqa.selenium.OutputType上遇到的任何问题;导入org.openqa.selenium.TakesScreenshot;导入org.openqa.selenium.WebDriver;导入org.openqa.selenium.chrome.ChromeDriver;导入java.io.File;导入org.apache.commons.io.FileUtils;这些是导入文件scrFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.File);copyFile(scrFile,新文件(“E:\\Screenshot\\Screenshot.png”);这是代码。.在
IDE
中,只需使用org.apache.commons.io.FileUtils.copyFile(scrFile,新文件(“C:\\tmp\\screenshot.png”)当我使用org.apache.commons.io.FileUtils.copyFile(scrFile,新文件(“C:\\tmp\\screenshot.png”)。。它还显示错误“org.apache.commons.io无法解决”,现在我创建了一个新项目,我使用了selenium-2.53.1,没有,我使用了代码,并获得了屏幕截图。。是的,代码是完美的,并且产生了结果,但是为什么它不能与selenium-java-3.6.0一起工作呢。。无论如何,谢谢你,但是你能帮我在selenium-java-3.6.0中解决这个问题吗?这意味着你的import org.apache.commons.io.FileUtils代码>未成功。从项目中删除相关的jar
文件,从IDE
中删除所有项目,关闭IDE
,重新启动系统,将相关的jar
添加到项目中,然后运行测试