2017-06-01 151 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

是的,但然後我還需要爲每個測試用例創建這個測試用例,所以我只是重新編寫了幾次代碼。 –