【发布时间】:2020-07-07 16:15:29
【问题描述】:
我有 20 个页面,每个页面有 2 个测试用例,每个测试用例下载许多文件。我想在运行时更改每个测试用例的下载目录。
这是“TestBaseClass”代码,它下载一个特定文件夹中的所有文件,我必须根据类别将它们分开并将它们放入特定文件夹中。 有 20 个文件夹,每个文件夹都有 2 个子文件夹“ChapterLevel”和“PracticeLevel”,我必须手动将其放置在其中。
是否可以通过在运行时传递变量来更改下载目录?
我的 TestBaseClass 代码:
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);
}
这是我的测试用例:
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();
}
}
【问题讨论】:
-
您可以通过添加参数
initialization(String downloadPath)来更改每个测试用例中的下载文件夹,然后调用prefs.put("download.default_directory", downloadPath),解决子文件夹问题,您可以使用@移动下载的文件到子文件夹987654325@. -
@samabcde,请您详细说明一下子文件夹,我如何在我的场景中实现?