量角器:制作方案的问题

时间:2015-08-06 12:15:49

标签: angularjs asynchronous protractor scenarios

在那天之前,我总是做一些孤立的小测试。但现在我想在一个场景中运行它们。我有一个奇怪的错误。有些测试无法协同工作。 例如。 第一个:

beforeEach(function(){
    browser.get('ng-components/examples/ps-grid-column-filter-range.html');
});

it('балун содержит текст', function () {
    filter_field.click();
    browser.actions().click(filter_field).perform();

browser.wait(function () {
  return balloon_info.isPresent();
     },5000).then(function () {
       expect(balloon_text.getText()).toContain(balloon_contain_text);
       expect(balloon_text.isDisplayed()).toBe(true);
  }).thenCatch(function () {
      expect(true).toBe(false);
 });
console.log("ps-grid-column-filter-range_spec_1.1.с");
});

第二个:

  beforeEach(function(){
    browser.get('ng-components/examples/ps-grid-column-filter-range.html');
 });

it('балун демонстрируется', function () {
    filter_field.click();
    browser.actions().click(filter_field).perform();

    browser.wait(function () {
      return balloon_info.isPresent();
      },5000).then(function () {
        expect(balloon_info.isDisplayed()).toBe(true);
    }
    ,function (error) {
       expect(false).toBe(true);
   });

console.log("ps-grid-column-filter-range_spec_1.1.a");
  });

当我的测试被隔离时,他们工作正常。但是在小组中 - 他们失败了。我的错是什么?这是异步的问题吗?

另外,有趣的是,一些破坏的测试没有方法wait()。

1 个答案:

答案 0 :(得分:1)

browser.wait是非阻塞的,因此您的第二个测试可能会在您的第一个测试仍在进行时运行。由于它具有相同的功能,因此可能会影响彼此的结果。 尝试将它们放在同一个测试中并用

链接它们

.then()

您可以按照此示例

进行量角器阻塞等待

Blocking wait

相关问题