2

入力フィールドが分​​度器でフォーカスされているかどうかをテストするにはどうすればよいですか? 私はこれをやっています:

it('should focus email field', function(){
    expect(element(by.model('login.email')).getAttribute('id')).toEqual(browser.driver.switchTo().activeElement().getAttribute('id'));
});

これは chrome で動作するようですが、このテストは Firefox で失敗します。何か案は?

これは失敗メッセージです:

[firefox #1]   2) Login page should focus email field
[firefox #1]    Message:
[firefox #1]      Expected 'login' to equal ''.
[firefox #1]    Stacktrace:
[firefox #1]      Error: Failed expectation
[firefox #1]     at [object Object].<anonymous> (/Users/Jason/Desktop/app/test/e2e/login-spec.js:38:69)
[firefox #1] 

これが私のテストスクリプトです:

describe('Login page', function() {
    var loginURL = 'http://localhost:8090/app/#/login';
    var loginEmailField = 'login-email';

    beforeEach(function() {
        browser.get(loginURL);
    });

    it('should focus email field', function(){     
        expect(element(by.id(loginEmailField)).getAttribute('id')).toEqual(browser.driver.switchTo().activeElement().getAttribute('id'));
    });
});
4

1 に答える 1

2

アサーションを行う前に、angular を待つ必要があります。

beforeEach(function() {
    browser.get(loginURL);
    browser.waitForAngular();
});

それとは別に、これはautofocus属性に関連している可能性があります。Firefox で問題が発生した/発生しました。以下を参照してください。

于 2015-01-04T19:49:28.590 に答える