2017-02-02 1 views
0

우리 네비게이션을위한 셀레늄 테스트를 작성 중이며, 애플리케이션이 물론 반응 형이며, 스마트 폰 크기에서 고전적인 부트 스트랩 탐색 아이콘이 표시됩니다.셀레늄 테스트 반응 네비게이션

나는 다음 링크를 클릭하면 내가 다시 등 메뉴를 열 필요하므로 탐색이 자동으로 메뉴를 닫습니다 응답 모드에서 링크를 클릭하면

지금,

그래서 나는 루프에 대한 간단한 생성 그렇게 할 때 반응 메뉴가 표시되면 클릭하여 메뉴를 열고 나중에 링크를 클릭하십시오.

이것은 훌륭하고 빠르지 만, 링크를 클릭 할 때마다 Open Menu 루프를 반복하기 때문에 코드가보기 흉하게 보입니다. 그래서 제 질문이 있습니다. 이게 더 좋을까요? 또는 데스크탑과 스마트 폰 모두에 대해 하나의 방법을 만들려고 할 때 이것이 복권입니까?

Btw는 임 사용 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을 호출하면됩니다.