在Protractor测试运行时更改页面URL

时间:2017-10-25 07:42:22

标签: angular protractor

在我的量角器测试中,我想在页面中执行某些操作(第1页)。之后在同一个testcript中我想转到另一个页面(第2页)来检查结果。

describe('something', function() {
  describe('foo', function() {
    browser.get(url_1);
    it("should do something with elem1 on page1", function() {
      var elem1 = element(by.css("..."));
      ...
    });
  });
  describe('bar', function() {
    browser.get(url_2);
    it("should do something with elem1 on page2", function() {
      var elem1 = element(by.css("..."));
      ...
    });
  });
});

只要我不尝试导航到url_2,第1页的测试就可以了。 但在上面的示例中,浏览器导航到page1并立即导航到page2。我得到一个"失败:找不到使用定位器的元素" page1的错误。 我认为像browser.get和browser.setLocation这样的命令也应该成为controlFlow的一部分吗?

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要将browser.get(url_2);语句包含在beforeAll()方法中,如下所示。

describe('something', function() {
  describe('foo', function() {
    beforeAll(function(){
        browser.get(url_1);
    })

    it("should do something with elem1 on page1", function() {
      var elem1 = element(by.css("..."));
      ...
    });
  });
  describe('bar', function() {

    beforeAll(function(){
        browser.get(url_2);
    })

    it("should do something with elem1 on page2", function() {
      var elem1 = element(by.css("..."));
      ...
    });
  });
});