2017-06-01 153 views
0

我想在几个浏览器(Chrome浏览器,边缘,火狐等)运行我的测试运行JUnit测试硒

我不需要它们运行的​​同时,他们可以运行后一个一个完成。 我使用初始化浏览器@before并切换大小写以查找XML配置文件中的浏览器(getData函数)。

@BeforeClass 
public static void openBrowser() throws ParserConfigurationException, SAXException, IOException { 
    initBrowser(getData("BrowserType")); 
    mainWindowHandle = driver.getWindowHandle(); 
    wait = new WebDriverWait(driver, Long.parseLong(getData("WaitTime"))); 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
    initExtentReport(); 
    initElements(); 
} 

public static void initBrowser(String browserType) throws ParserConfigurationException, SAXException, IOException { 
    switch (browserType.toLowerCase()) 
     { 
     case "firefox": 
      driver = initFFDriver(); 
      break; 

     case "ie": 
      driver = initIEDriver(); 
      break; 

     case "chrome": 
      driver = initChromeDriver(); 
      break; 

      default: 
       driver = initChromeDriver(); 
       break; 
    } 

    driver.manage().window().maximize();   
    driver.get(getData("URL")); 
    driver.manage().timeouts().implicitlyWait(Integer.parseInt(getData("WaitTime")), TimeUnit.SECONDS); 
} 

但是由于测试去检查XML,看看我在BrowserType(XML)的浏览器

<Pre> 
    Chrome 
</Pre> 

没有办法,我上运行多个浏览器测试。我需要手动更改XML中的浏览器才能这样做。

有没有办法与Junit做到这一点? (我在Eclipse中使用Java。)

+0

这不是您的问题的答案,但您是否知道在InitBrowser内部,您正在根据电子表格设置设置隐式等待超时,但是在初始化该驱动程序后,在@BeforeClass中,您正在用硬编码等待20秒? –

+0

更多的问题是,我通过创建一个前端来完成这个任务,这个前端允许测试人员选择哪个浏览器以及其他各种选项,然后用这些设置创建文本表文件,但那是因为我使用JBhave将JUnit与故事文件(BDD)结合使用,然后将这些参数传递给我的测试,而无需更改脚本。其他更简单的接口只是使用电子表格来设置所有这些参数,相同的想法。 –

+0

嘿,是的,我看到了隐含的等待,谢谢我将删除一个。 我并不完全理解你答疑的第二部分。 –

回答

0

您可以为不同的浏览器创建多个XML。

+0

是的,但然后我还需要为每个测试用例创建这个测试用例,所以我只是重新编写了几次代码。 –