簡體   English   中英

量角器頁面對象問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM