2015-11-17 32 views
1
來轉換下面Line在頁面對象

要低於線如何用量角器

rows.element(by.xpath(".//*[@ng-model='strategy.COMMENT']")).clear() 

轉換成網頁對象像

rows.dataCatcherPage.strategyAUMValue.clear() 

但我得到的錯誤

「失敗:無法讀取屬性'strategyAUMValue'undefined「

這是Page對象

strategyAUMValue: { 
    get: function() { 
     return element(by.xpath(".//*[@ng-model='strategy.AUM_VALUE']")); 
    } 
}, 

回答

1

如何:

module.exports = new function() { 
    var elements : { 
     strategyAUMValue : element(by.xpath(".//*[@ng-model='strategy.AUM_VALUE']")) 
    }; 

    this.clear = { 
     strategyAUMValue : elements.strategyAUMValue.clear() 
    }; 

    this.getText = { 
     strategyAUMValue : elements.strategyAUMValue.getText() 
    }; 
}; 

規範

var dataCacherPage = require('./dataCacher.page.js'); 

describe('Data cacher', function(){ 
    it('can clear the strategy aum value', function(){ 
     dataCacherPage.clear.strategyAUMValue(); 
     expect(dataCacherPage.clear.strategyAUMValue()).toEqual('', 'Strategy AUM Value should have been an empty string'); 
    }); 
}); 

這可以讓你的頁面元素是私有的(分離的框架圖層),但您可以完全訪問所有的測試將採取的行動。您可以通過向元素部分添加任何其他元素來擴展它,然後添加到該元素測試所需的任何this.clear/getText/isDisplayed類型函數。

一些可擴展性:

module.exports = new function() { 
    var elements : { 
     strategyAUMValue : element(by.xpath(".//*[@ng-model='strategy.AUM_VALUE']")), 
     // Get an element where multiple exist 
     coolElement : $$('[name="coolElement"]') 
    }; 

    this.clear = { 
     strategyAUMValue : elements.strategyAUMValue.clear() 
    }; 

    this.getText = { 
     strategyAUMValue : elements.strategyAUMValue.getText(), 
     coolElement : elements.coolElement.getText() 
    }; 
}; 

var dataCacherPage = require('./dataCacher.page.js'); 

describe('Data cacher', function(){ 
    it('can hit multiple elements', function(){ 
     // Just add an index on coolElement to get whichever you want 
     expect(dataCacherPage.clear.coolElement(2)).toEqual('This is the third cool element on the page', 'Should have gotten the text from the third cool element'); 
    }); 
}); 
+0

有在it..and中繼我循環每一行... 這是上面創建的頁面對象......但我想每一行的頁面對象,而不是單獨.... 。 –