无法通过proctactor / jasmine测试点击浏览器窗口

时间:2016-01-20 22:21:07

标签: angularjs selenium protractor

我正在使用量角器,茉莉,硒,webdriver-manager测试我的AngularJS应用程序。我试图在测试结束后让浏览器保持在屏幕上,只是为了看看驱动程序是否进行了正确的点击,鼠标和键入以及我的测试是否属实。

browser.pause()这样的陈述似乎不起作用。它确实挂起了浏览器,但显然是在describe块的最开始。我能做些什么来实际控制浏览器(即,在点击它时观察它,并准确地停留在我想要的地方)

我的文件跟随(所有测试都通过):

conf.js

exports.config = {
  directConnect: true,
  seleniumAddress: 'http://localhost:4444/wd/hub',
  capabilities: {
    'browserName': 'chrome'
  },
  baseUrl: 'http://localhost:63342/bet/',
  framework: 'jasmine',
  specs: ['my.spec.js'],
  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000,
    showColors: true,
    isVerbose : false
  }
};

my.spec.js

describe('my test suite', function () {

    describe('log file menu', function () {
        var logMenu = by.repeater('logfile in availableLogs');

        browser.get('index.html');

        it('show details', function () {
            element(by.css('[show="showDetail"]')).click().then(function () {
                expect($('.max-occupancy-detail').isDisplayed()).toBeTruthy();
            });
        });

        it('should verify number of log files', function () {
            element.all(logMenu).then(function(elements){
                expect(elements.length).toEqual(6);
            });
        });

        it('should verify the first option is selected', function () {
            var first = element.all(logMenu).first();
            expect(first.getAttribute('selected')).not.toBeNull();
        });

        it('should verify the second option is not selected', function () {
            var second = element.all(logMenu).get(1);
            expect(second.getAttribute('selected')).toBeNull();
        });

        it('should select the third option', function () {
            var third = element.all(logMenu).get(2);
            third.click().then(function () {
                expect(third.getAttribute('selected')).not.toBeNull();
            });
        });

        browser.pause();
    });

});

1 个答案:

答案 0 :(得分:1)

要在测试期间使浏览器暂停,需要将browser.pause()放入您想要暂停的测试中。

it()函数不直接计算,而是保存您传递的测试函数以便稍后运行。这就是为什么暂停直接发生在您的示例中。)