Prise de capture d'écran à l'aide de Selenium 3.6-Java-Webdriver
Je ne suis pas en mesure de prendre une capture d'écran dans mon projet. J'utilise la version Selenium 3.6 avec Java. Voici mon code:
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
Malheureusement, le "copyFile" donne l'erreur suivante:
The method copyFile(File, File) is undefined for the type FileUtils
J'ai également importé tous les paquets requis.
Quelqu'un Peut m'aider à prendre une capture d'écran?
3 answers
Utilisation d'importation import org.apache.commons.io.FileUtils
. Cela importe la classe FileUtils
dont vous avez besoin.
Devinez que vous importez un mauvais paquet
Vérifiez que ces paquets doivent être là
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
Exemple de code:
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();
}
}
L'erreur dit tout the "copyFile" is giving an error. It is saying "The method copyFile(File, File) is undefined for the type FileUtils"
. Cela peut être possible FileUtils
a plusieurs définitions dans vos importations. La solution serait donc la suivante:
-
Utiliser uniquement:
import org.apache.commons.io.FileUtils;
OU
-
Changez votre code comme:
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); org.apache.commons.io.FileUtils.copyFile(scrFile, new File("C:\\tmp\\screenshot.png"));
Essayer
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){ }
Cela fonctionne pour moi correct .