2016-06-21 62 views

回答

1

只需按照原則實現您自己的頁面對象。你會發現有很多事情不同,從案件到案件(公司到公司),沒有「一刀切」的事情。

使用相同的例子page factory我會做這樣的事情(很僞代碼):

class Home { 
    construct(WebDriver) { 
     this.webdriver = WebDriver 
    } 

    fillSearch(text) { 
     webdriver.findById('x').send_keys(text); 

    } 

    submit(isValid) { 
     if (isValid) { 
      return new ResultsPage(this.webdriver); 
     } else { 
      return self(this.webdriver) 
     } 
    } 
} 

取決於你測試你可能也必須注入在構造一個「語境」 - 對'多態「頁面具有不同的行爲,具體取決於...上下文。

I.e. 「伐木」,第一次可能會帶你到一個「遊」的頁面,但自那以後,「儀表盤」,所以你可能有類似:

class Login { 
    construct(WebDriver, context) { 
     this.webdriver = WebDriver 
    } 

    fillUsername(text) { 
     webdriver.findById('username').send_keys(text) 
    } 

    fillPassword(text) { 
     webdriver.findById('password').send_keys(text) 
    } 

    submit(isValid) { 
     if (isValid) { 
      if (context.isFirstTimeLogin) { 
       return new Tutorial(this.webdriver, context) 
      } else { 
       return new Dashboard(this.webdriver, context) 
      } 
     } else { 
      return self(this.webdriver) 
     } 
    } 
} 

正如你已經可以看到構造函數可以是抽象的頁面:)

相關問題