Saya memiliki 20 halaman dan setiap halaman memiliki 2 testcase dan setiap testcase mengunduh sejumlah file. Saya ingin mengubah direktori unduhan untuk setiap test case saat runtime.

Berikut adalah kode 'TestBaseClass' yang mengunduh semua file dalam satu folder tertentu dari mana saya harus memisahkannya sesuai kategori dan menempatkannya ke dalam folder tertentu. Ada 20 folder dan setiap folder memiliki 2 subfolder 'ChapterLevel' & 'PracticeLevel' di mana saya harus meletakkannya secara manual.

Apakah mungkin untuk mengubah direktori unduhan dengan melewatkan variabel selama runtime?

Kode TestBaseClass saya:

public static WebDriver driver;

public static void initialization() throws InvocationTargetException {
    try {

        // Setting new download directory path
        Map<String, Object> prefs = new HashMap<String, Object>();

        // Use File.separator as it will work on any OS
        prefs.put("download.default_directory", "C:\\Users\\pd\\Desktop\\AHNPTTest");

        // Adding cpabilities to ChromeOptions
        ChromeOptions options = new ChromeOptions();
        options.setExperimentalOption("prefs", prefs);

        // Launching browser with desired capabilities
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver(options);

    } catch (Exception e) {
        // generic exception handling
        e.printStackTrace();
    }

    driver.manage().window().maximize();
    driver.manage().deleteAllCookies();
    driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
    driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);
}

Ini testcase saya:

public class ANA_TC16_RiskAnalysisNewTest extends TestBaseClass {
    ANA_RiskAnalysisNewPage New;

    @BeforeMethod
    public void setUp() {
        try {
            initialization();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        login();
        New = new ANA_RiskAnalysisNewPage();
    }

    @Test
    public void chapterrLevelTest() throws Exception {
        New.hoverTest();
        New.clickBottomOptions();
        New.chapterOption();
        New.TopX();
        New.ATISlider();
        New.conditionSelection();
        New.takeScreenshot("Risk Analysis New Chapter Level Image");
        New.downloadOptions();
        New.isFileDownloaded();
    }

    @Test
    public void practiceLevelTest() throws Exception {
        New.hoverTest();
        New.clickBottomOptions();
        New.providerOption();
        New.TopX();
        New.ATISlider();
        New.conditionSelection();
        New.takeScreenshot("Risk Analysis New Practice Level Image");
        New.downloadOptions();
        New.isFileDownloaded();
    }
}
0
dh.purvi 7 Juli 2020, 19:15

1 menjawab

Jawaban Terbaik

Misalkan Anda ingin menentukan folder unduhan untuk setiap metode pengujian.

  1. Tambahkan parameter untuk downloadPath di initialization di TestBaseClass.
  2. Tambahkan parameter untuk downloadPath di setup di ANA_TC16_RiskAnalysisNewTest, hapus anotasi @BerforMethod dan perbarui setiap metode pengujian untuk memanggil setup di awal dengan downloadPath yang diinginkan .
public class TestBaseClass {
    public static void initialization(String downloadPath) throws InvocationTargetException {
        try {
                 
               // Setting new download directory path
               Map<String, Object> prefs = new HashMap<String, Object>();
                
               // Use File.separator as it will work on any OS
               prefs.put("download.default_directory", downloadPath);
        ...
public class ANA_TC16_RiskAnalysisNewTest extends TestBaseClass {
    ANA_RiskAnalysisNewPage New;
    
    // @BeforeMethod
    public void setUp(String downloadPath) {
        try {
            initialization(downloadPath);
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        login();
        New = new ANA_RiskAnalysisNewPage();
    }

    @Test
    public void chapterrLevelTest() throws Exception {
        setUp("C:\\Users\\pd\\Desktop\\AHNPTTest\\ANA_TC16_RiskAnalysis\\ChapterLevel");
        New.hoverTest();
        ...
    }

    @Test
    public void practiceLevelTest() throws Exception {
        setUp("C:\\Users\\pd\\Desktop\\AHNPTTest\\ANA_TC16_RiskAnalysis\\PracticeLevel");
        New.hoverTest();
        ...
    }
    ...
0
samabcde 8 Juli 2020, 14:26