Java строка, сбрасывающая сохраненное значение в ноль - PullRequest
1 голос
/ 07 августа 2020

Я новичок в Java, но имею 3-летний опыт работы в C#, я столкнулся с проблемой, когда String не сохраняет назначенное значение (с использованием методов Getter / Setter).

my класс объекта выглядит так;

    public class filePathPojo {

    private String FilePath;
    
    public void setFilePath(String _Path){
        this.FilePath = _Path;
    }

    public String getFilePath(){
        return this.FilePath;
    }    
}

У меня есть отдельный файл класса с двумя методами, один создает маршрут каталога с уникальным значением в зависимости от того, кто использует приложение, затем он сохраняет путь, используя Set, следующий метод - сделать снимок экрана и перейти в новый каталог. Каждый раз, когда метод снимка экрана запускается и вызывает Get, он возвращает NULL! это довольно неприятно для чего-то такого простого.

другой класс выглядит так

    public class folderSetup extends filePathPojo {

      public void SetupDirectory(String ScenarioName){

        String Root = "C:\\Users\\" + SomeIdentifier + "\\GherkinEvidence\\SomeProject\\";

        String Today = DateTime.now().toString("dd:MM:yyyy");
        Today = Today.replace(":", "-");
        String dtNOW = DateTime.now().toString("HH:mm:ss");
        dtNOW = dtNOW.replace("/", "-").replace(":", "");

        File file = new File(Root + Today + "\\" + dtNOW + " " + ScenarioName);

        boolean dirCreated = file.mkdirs();
        System.out.println("***Attemping To Create Directory: " + file.getAbsolutePath());

        FilePath = file.getAbsolutePath();
        setFilePath(FilePath);
}

      public String takeScreenshot(String screenshotName, WebDriver driver){
            String path = getFilePath();
            System.out.print("Filepath for screenshot picked up is" + path);
            try {
                WebDriver augmentedDriver = new Augmenter().augment(driver);
                File source = ((TakesScreenshot)augmentedDriver).getScreenshotAs(OutputType.FILE);
                //path = "./target/screenshots/" + source.getName();
                FileUtils.copyFile(source, new File(path + "\\" + screenshotName + ".png"));
            }
            catch(IOException e) {
                //path = "Failed to capture screenshot: " + e.getMessage();
            }
            return path;
    }
    }

пожалуйста, есть ли у кого-нибудь идеи? здесь вызываются методы;

содержит определения шагов i @Before (FolderSetup)

Public Class PerformanceSteps{
@Inject private folderSetup folderSetup;

    @Before
public void FolderSetup(Scenario scenario){
     System.out.print("***Performing Evidence Directory Setup***");
    System.out.println("ScenarioName = " + scenario.getName().toString() + "**");
    folderSetup.SetupDirectory(scenario.getName());
}

}

public class Navigate extends BasePage {

@Inject private com.test.utilities.folderSetup folderSetup;
public void toAppianHomePage(){

    System.out.println("Navigating to Appian URL " + LoadProperties.Appian_URL);
    driver.navigate().to(LoadProperties.Appian_URL);
    driver.manage().window().maximize();
    folderSetup.takeScreenshot("Navigate Appian Home", driver);

}
...