Конструктор File(String) не виден, хотя он определен

TakesScreenshot ts=(TakesScreenshot)driver;

File source=ts.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(source,new File("./Screenshots/test.png"));

приведенный выше код используется для захвата снимка экрана и вставки в файл, но он не может найти ФАЙЛ, а в третьей строке отображается ошибка - конструкция (строка) не видна. В чем ошибка?


person Madhu Ragi    schedule 20.06.2017    source источник
comment
Убедитесь, что вы имеете дело с java.io.File .   -  person Arnaud    schedule 20.06.2017
comment
Проверьте импорт файла File. Он импортирует java.io.File?   -  person Andy Thomas    schedule 20.06.2017
comment
Было бы здорово, если бы вы сначала отформатировали свой код   -  person ΦXocę 웃 Пepeúpa ツ    schedule 20.06.2017
comment
у меня включен импорт org.apache.commons.io.FileUtils;   -  person Madhu Ragi    schedule 20.06.2017
comment
у вас также должен быть импорт класса File   -  person user7294900    schedule 20.06.2017
comment
Давайте не будем пытаться делать это по частям. Представьте минимально воспроизводимый пример, демонстрирующий эту проблему. По моим оценкам, для этого потребуется менее 20 строк. Если упражнение по объединению этого не поможет вам обнаружить проблему, отредактируйте ее в своем вопросе, и мы сможем ее решить.   -  person John Bollinger    schedule 20.06.2017
comment
Джон Боллинджер - мне просто нужно выполнить приведенные выше строки, чтобы проверить, сделан ли снимок экрана и вставлен ли он в ФАЙЛ.   -  person Madhu Ragi    schedule 20.06.2017
comment
Я также пробовал использовать этот фрагмент кода: File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); Строка screenshotBase64 = ((TakeScreenshot) driver).getScreenshotAs(OutputType.BASE64); FILE и BASE64 не могут быть разрешены или это не поле является ошибкой. Как я могу это исправить?   -  person Madhu Ragi    schedule 20.06.2017


Ответы (2)


Вы просто пытаетесь сделать снимок экрана, когда тест не проходит, или хотите сделать что-то другое? В случае, если это прежний это показывает, как это сделать в @After, если вы просто пытаетесь захватить экран застрелен, когда тест не пройден.

person Helgi    schedule 25.06.2017

Попробуйте использовать этот полный метод, чтобы сделать снимок экрана и сохранить результаты по определенному пути. Это работает для меня. Попробуйте с этим и дайте мне знать.

public void TakeScreenShots(String TestID,String ResultsPath){
    try{
        GlobalVariable.bExitTestIteration = false;
        if(!(TestID.length()>0)){
            System.out.println("chk");
        }
        if((TestID.length()>0) && (ResultsPath.length()>0)){
                TestID=//DriverScript.sScenarioID;
                ResultsPath="//DriverScript.ResultsFolder";


            //****** Check if local variable is used **********
            if (ResultsPath.length()>2){
                if (ResultsPath.substring(0, 1)=="%%"){
                    ResultsPath = getDictinaryValues(ResultsPath.substring(2));
                }
            }
            //*************************************************         
            Log.info("Take a screenshot ");
            WebDriverWait wait = new WebDriverWait(driver, 10);
            File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
            // Now you can do whatever you need to do with it, for example copy somewhere
            FileUtils.copyFile(scrFile, new File(ResultsPath+"\\" +TestID+ ".png"));
        }
     }catch(Exception e){
         Log.error("Not able to take a screenshot --- " + e.getMessage());           
        }
    }

Пожалуйста, проверьте этот фрагмент кода и ответьте мне.

person SAUMARS    schedule 29.06.2017