2017-05-31 126 views
0

我用一個頁面對象與元素像追加的XPath元素

myButton: { 
    selector: '//button[@ng-click="$clientCtrl.add()"]', 
    locateStrategy: 'xpath' 
} 

雖然我的測試運行,我希望我的按鈕被禁用。 我可以添加新元素是這樣的:

myButtonDisabled: { 
    selector: '//button[@ng-click="$clientCtrl.add()"][@disabled="disabled"]', 
    locateStrategy: 'xpath' 
} 

但我有許多按鈕,所以我會得到一個巨大的啓用和禁用按鈕的列表。 所以不是我想寫一個命令我的網頁對象內是這樣的:

var myCommands = { 
    assertButtonDisabled: function(mybutton) { 
     this.api 
      .pause(500) 
      .useXpath() 
      .expect.element(mybutton + '[@disabled="disabled"]', 5000).to.be.present; 
     return this; 
    } 
}; 

我通過

myPageObject.assertButtonDisabled('@myButton'); 

好叫我的測試中,這將失敗,因爲我不能連接的元素等@myButton與另外的xpath([@disabled="disabled"])。

那麼,我可以做什麼,而不是添加多個新元素?

回答

0

從維護角度來看,它會更容易維護的事情是這樣的:

myButton: { 
selector: '//button[@ng-click="$clientCtrl.add()"]', 
locateStrategy: 'xpath' 
} 

myButtonDisabled: { 
selector: '//button[@ng-click="$clientCtrl.add()"][@disabled="disabled"]', 
locateStrategy: 'xpath' 
} 

只要使用適當的命名這些元素。