[英]Protractor page object issues
我似乎陷入了頁面對象的構造。 我閱讀了很多關於頁面對象的文檔,並且知道它們包含兩件事:
當我檢查示例文件時,我看到元素是在每個頁面對象的開頭定義的。 在測試中,pageobject通過require導入。 但我看到的問題是,當需求發生時,對象尚未存在。 有沒有其他方法來解決這個問題,而不必在頁面加載時執行需求?
提前致謝。 問候
有一個新的Protractor樣式指南即將出現(目前在評論中),它應該清理很多東西,尤其是頁面對象創建和需要部分。 這是目前的草案:
關於你的問題,首先,需要將Page Objects定義為函數,在構造函數中聲明頁面對象元素:
var QuestionPage = function() {
this.question = element(by.model('question.text'));
this.answer = element(by.binding('answer'));
this.button = element(by.className('question-button'));
this.ask = function(question) {
this.question.sendKeys(question);
this.button.click();
};
};
module.exports = QuestionPage;
然后, 在測試套件的頂部需要您的頁面對象:
var QuestionPage = require('./question-page');
describe('My Test', function() {
...
});
在測試套件中實例化您的頁面對象:
describe('My Test', function() {
var questionPage = new QuestionPage();
// specs
});
@ alecxe的答案很可靠,但就個人而言,我更喜歡實際模擬module.export:
...
module.exports = new QuestionPage();
因此,您只需要在測試中使用它,而不是在測試中實例化它。 只要有可能,我覺得腳手架應該在頁面對象中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.