Angularjs 量角器--页面对象,获取错误无法读取属性';单击';未定义的。如何解决此错误?

Angularjs 量角器--页面对象,获取错误无法读取属性';单击';未定义的。如何解决此错误?,angularjs,protractor,Angularjs,Protractor,尝试使用page object menu.js从spec.js访问角度应用程序的菜单,但运行量角器时出现错误。失败:无法读取未定义的属性“单击” spec.js var loginpage = require('./login'); var Menu = require('./menu'); describe('todo', function() { it('activity', function() {

尝试使用page object menu.js从spec.js访问角度应用程序的菜单,但运行量角器时出现错误。失败:无法读取未定义的属性“单击”

spec.js

        var loginpage = require('./login');
        var Menu  = require('./menu');
        describe('todo', function() {
            it('activity', function() {

             var question = new loginpage();
            var menu = new Menu();
                    browser.sleep(10000);
                    menu.dropdown('Inquiry').click();

        });
        });


   PAGE OBJECT FILE menu.js


    var MenuPage = function() {
      this.dropdown = function(dropdownName) {

        var openDropdown = function() {
          element(by.css('.nav'))
              .element(by.css('[title=dropdownName]'))
              .click();
        };
     return {

          option: function(optionName) {
            openDropdown();
            return element(by.css('.dropdown.open'))
                .element(by.linkText(optionName));
          }
        }

      };
    };

    module.exports = MenuPage;

哇,你的考试很老套。使用
JS
的新功能要容易得多

但是,返回
对象
。而不是返回
元素
。您可以返回函数,该函数将返回与您的代码样式相关的元素:

return function(optionName) {
            openDropdown();
            return element(by.css('.dropdown.open'))
                .element(by.linkText(optionName));
          }