FileUtils未显示在selenium WebDriver中导入屏幕截图功能的预定义类的建议

xoefb8l8  于 2023-01-20  发布在  其他
关注(0)|答案(5)|浏览(151)

我不允许在程序中使用FileUtils,这样做时会显示错误。甚至没有显示导入此预定义类的建议。我尝试搜索解决方案,但我找到的是导入类。但在我的情况下,甚至没有显示导入任何类的建议。将鼠标悬停在“FileUtils”上会显示创建FileUtils类/接口的建议。以下是我的代码:

package captureScreenshot;

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

import org.apache.commons.io.FileUtils; //Getting Error at this line
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

import com.google.common.io.Files;

public class FacebookScreenshot {

@Test
    public void captureScreenshot() throws IOException
{
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("https://www.facebook.com");
    driver.findElement(By.xpath("//input[@name='firstname']")).sendKeys("Anil Kumar");

    TakesScreenshot ts = (TakesScreenshot) driver;
    File source = ts.getScreenshotAs(OutputType.FILE);
    FileUtils.copyfile(source,new File("./Screenshots/facebook.png")); //Getting error at this line

    driver.quit();

    }

}
4urapxun

4urapxun1#

文件实用程序类

FileUtils类在org.apache.commons.io.FileUtils中定义,在以下方面提供 * 常规文件操作实用程序 *:

  • 写入文件
  • 从文件阅读
  • 创建包含父目录的目录
  • 复制文件和目录
  • 删除文件和目录
  • 转换为URL或从URL转换
  • 按筛选器和扩展名列出文件和目录
  • 比较文件内容
  • 文件最后更改日期
  • 计算校验和

默认情况下,org.apache.commons.ioselenium-server-standalone-x.y.z捆绑在沿着,可以随时使用。
但您观察到的行为与您的 * 用例 * 非常相似,您在该用例中提到 * 不允许您在程序中使用FileUtils。它可能是下面提到的两种情况之一:

  • 如果您正在使用selenium-java-3.9.1客户端中的 * JAR *,则包含org.apache.commons.ioJAR 不会添加到您的项目中。
  • 如果您正在使用具有selenium-java-3.9.1客户端依赖性的 Maven,则已排除包含 *FileUtils类 * 的模块。

由于上面提到的原因,当你在程序中提到FileUtils时,它不会显示任何导入类的建议。而且,如果你强制提供导入,它会在该行显示错误。

kxeu7u2r

kxeu7u2r2#

FileUtils.copyFile();已更新为FileHandler.copy()

de90aj5v

de90aj5v3#

是的,对于Selenium最新版本,我们应该使用 FileHandler.copy() 它工作正常,不会抛出任何错误。

// Take Screenshots example
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileHandler.copy(scrFile, new File("<your path>\\screenshot.png"));
v440hwme

v440hwme4#

从以下位置下载Maven commons-io jar:https://mvnrepository.com/artifact/commons-io/commons-io并将jar添加到项目中的构建路径

nfs0ujit

nfs0ujit5#

在上面的文件处理器中.copy(scrFile,新建文件(“\screenshot.png”));此处为copy -未定义类型FileHandler的方法copy(File,File)

相关问题