angularjs – 量角器开关

前端之家收集整理的这篇文章主要介绍了angularjs – 量角器开关前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 angularjs应用程序包含一个iframe,显示允许登录到另一个网站的页面.我试图在iframe中包含的字段中放置一些值,但我找不到使用任何定位器的元素.

这是我的测试:

describe("Harvest",function() {

  beforeEach(function () {

browser.get('http://localhost:8110/');

expect(browser.getCurrentUrl()).toMatch('_*#/login$');

element(by.model('user.username')).sendKeys('sam');
element(by.model('user.password')).sendKeys('pass');

element(by.id('bt_signin')).click();

  });

  afterEach(function () {
    browser.executeScript('window.sessionStorage.clear();');
  });

  describe('A user',function () {

beforeEach(function () {
  browser.get('http://localhost:8110/');
});

it('should be able to obtain an access token from harvest',function () {
  expect(browser.getCurrentUrl()).toMatch('_*#/home$');

  //Display and close the window
  element(by.id('btHarvest')).click();

  expect(element(by.id('modalHarvest')).isPresent()).toBe(true);

  element(by.id('btCloseModal')).click();

  expect(element(by.id('modalHarvest')).isPresent()).toBe(false);

  //Authenticate into harvest
  element(by.id('btHarvest')).click();

  expect(element(by.id('modalHarvest')).isPresent()).toBe(true);

  browser.switchTo().frame('iframeHarvest');

  //It fails here with a null exceptions,guess it can't find it
  element(by.id('email')).sendKeys(browser.params.harvestLogins.user);
  element(by.id('user_password')).sendKeys(browser.params.harvestLogins.password);
  element(by.id('sign-in-button')).click();

  expect(element(by.name('commit')).isPresent()).toBe(true);

  browser.driver.switchTo().defaultContent();



});

});

});

这是生成的异常

1) Harvest A user should be able to obtain an access token from harvest
   Message:
     [31mError: Error while waiting for Protractor to sync with the page: {}[0m
   Stacktrace:
     Error: Error while waiting for Protractor to sync with the page: {}
    at Error (<anonymous>)
==== async task ====
WebDriver.executeScript()
    at null.<anonymous> (/Users/samdurand/workspace/cake/subbie/src/test/web/js/features/harvest.js:45:22)
==== async task ====
Asynchronous test function: it()
Error
    at null.<anonymous> (/Users/samdurand/workspace/cake/subbie/src/test/web/js/features/harvest.js:26:5)
    at null.<anonymous> (/Users/samdurand/workspace/cake/subbie/src/test/web/js/features/harvest.js:20:3)
    at Object.<anonymous> (/Users/samdurand/workspace/cake/subbie/src/test/web/js/features/harvest.js:1:63)

在按照建议更正iframe调用后,我收到此错误

1) Projects A user is possible to create a project based on harvest data
   Message:
     [31mError: Error while waiting for Protractor to sync with the page: {}[0m
   Stacktrace:
     Error: Error while waiting for Protractor to sync with the page: {}
    at Error (<anonymous>)

解决方法

如上所述,您面临的问题是因为您切换到的iframe是非角度的.因此,切换到该iframe后,元素(by.id)将无法工作.相反,需要使用findElement!

猜你在找的Angularjs相关文章