2017-01-16 7 views
0

Я импортировал этот класс из другого пакета и попытался вызвать этот метод, но он не работает.Выполнение снимка экрана с использованием Selenium

Когда я создал этот метод в одном классе и назвал его, он работает.

private void getScreenshot() throws IOException 
{ 
     File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
     SimpleDateFormat dateFormat = new SimpleDateFormat("DD-MM-YYYY/hh-mm-ssaa"); 
     String destfile = dateFormat.format(new Date()) + ".png"; 
     FileUtils.copyFile(scrFile, new File("D:\\workspace\\Firewall\\Resources\\ScreenShots\\"+destfile)); 
} 
+1

Попробуйте добавить к вашему вопросу форматирование, так как читать этот код довольно сложно. Также добавьте журнал исключений, если есть – Andersson

+4

Если у вас был этот точный метод в другом классе, это не сработало, потому что это 'private'. Если это так, вы должны изменить его на 'public'. – Tom

ответ

1

Я предполагаю, что основная причина заключается в том, что вы импортируете неправильные библиотеки. Проверьте:

import java.io.File; 
import java.io.IOException; 
import org.apache.commons.io.FileUtils; 
import org.junit.Test; 
import org.openqa.selenium.OutputType; 
import org.openqa.selenium.TakesScreenshot; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

И в случае, если ваши библиотеки будут такими же, попробуйте использовать мой метод:

public class TakeScreenshot { 
    WebDriver driver; 
    public TakeScreenshot(WebDriver driver){ 
     this.driver = driver; 
    } 
public void ScreenShot(String nameTc) 
{ 
// Take screenshot and store as a file format 
File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
try { 
// now copy the screenshot to desired location using copyFile //method 
FileUtils.copyFile(src, new File("bin/" + nameTc + ".png")); 
} 
catch (IOException e) 
{ 
    System.out.println(e.getMessage()); 
}} } 
0

С помощью этого вы можете захватить скриншот, просто нужно позвонить captureScreenShot() метод для снятия скриншота путем отправки пути к файлу

public static void captureScreenShot(String filePath) 
    { 
    File scrFile =((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
    try 
    { 
     FileUtils.copyFile(scrFile, new File(filePath)); } 
    catch (IOException e) 
    { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); }}