2017-02-02 137 views
0

我正在爲我們的導航編寫一個硒測試,該應用程序當然是響應式的,並且當它在智能手機尺寸中獲得經典的引導程序導航圖標時。硒測試響應導航

現在,當我點擊響應模式的鏈接導航自動關閉菜單,所以點擊下一個鏈接,我需要打開菜單再等

所以我創建了一個簡單的循環,這樣當響應式菜單是可見的,點擊可以先打開菜單,然後再打開鏈接。

這工作很好,而且速度很快,但是因爲我重複打開菜單循環,每次點擊鏈接代碼看起來都很難看。所以我的問題是。這會更好嗎?或者當試圖爲臺式機和智能手機創建一種方法時,這是抽獎嗎?

順便說一句進出口使用PageObjects

這是我應得的,正如你可以在Open_Navigation重複的時間其自我幾十

public Open_Navigation() 
    { 
     if (lnkOpenNavigation.Displayed) 
      lnkOpenNavigation.Click(); 
     return this; 
    } 

    public Homepage navigate_the_site() 
    { 
     Open_Navigation(); 
     lnkCreate.WaitForCondition(x => lnkCreate.Displayed, 5000); 
     lnkCreate.Click(); 
     lnkContracts.Click(); 
     Open_Navigation(); 
     lnkLibraries.WaitForCondition(x => lnkLibraries.Displayed, 5000); 
     lnkLibraries.Click(); 
     lnkClauseLibrary.Click(); 
     Open_Navigation(); 
     lnkReports.WaitForCondition(x => lnkReports.Displayed, 5000); 
     lnkReports.Click(); 
     Open_Navigation(); 
     lnkAdministration.WaitForCondition(x => lnkAdministration.Displayed, 5000); 
     lnkAdministration.Click(); 
     lnkAccount.Click(); 
     Open_Navigation(); 
     lnkAdministration.WaitForCondition(x => lnkAdministration.Displayed, 5000); 
     lnkAdministration.Click(); 
     lnkUsers.Click(); 
     Open_Navigation(); 
     lnkAdministration.WaitForCondition(x => lnkAdministration.Displayed, 5000); 
     lnkAdministration.Click(); 
     lnkMasterData.WaitForCondition(x => lnkMasterData.Displayed, 5000); 
     lnkMasterData.Click(); 
     Open_Navigation(); 
     lnkSupport.WaitForCondition(x => lnkSupport.Displayed, 5000); 
     lnkSupport.Click(); 
     return this; 
    } 

回答

2

絕對不是

彩票想何時爲桌面和智能手機創建一種方法

我不是PageObject一個大風扇,但由於您的解決方案依賴於它,你可以使用Strategy pattern,因爲在運行時

讓算法從使用它

客戶獨立變化因此,您的導航是一系列步驟(算法),您可以根據瀏覽器大小(客戶端)讓它變化。簡單地說 - 在您的SetUp()方法中確定客戶,並針對特定情況調用適當的INavigationStrategy