.NET を使用してレンダリングされ、c# .net コードを含むページがあります。phantomjs GhostDriver を使用して、protractorjs でこれをテストしています。ただし、ページの読み込み時に問題が発生しているようです。
このテストを実行すると
it('should redirect to login', function () {
targetUrl = 'http://localhost:52254/';
ptor = protractor.getInstance();
ptor.ignoreSychronization = true;
ptor.get(targetUrl);
ptor.wait(function () {
return ptor.driver.getCurrentUrl().then(function (url) {
return targetUrl = url;
}, 2000, 'It\'s taking to long to load ' + targetUrl + '!');
});
expect(ptor.driver.getCurrentUrl()).toBe('http://localhost:52254/');
}, 5000);
すべてが順調で、私は期待どおりの場所にいます
しかし、以下のテストを実行すると、ページ上の要素を検索していること以外は同じです
it('should redirect to login', function () {
targetUrl = 'http://localhost:52254/';
ptor = protractor.getInstance();
ptor.ignoreSychronization = true;
ptor.get(targetUrl);
ptor.wait(function () {
return ptor.driver.getCurrentUrl().then(function (url) {
return targetUrl = url;
}, 2000, 'It\'s taking to long to load ' + targetUrl + '!');
});
ptor.driver.findElement(by.id('headerLoginBtn')).click().then(function () {
expect(ptor.driver.getCurrentUrl()).toBe('http://localhost:52254/Account/Login');
});
}, 5000);
以下に示す例外が発生します
UnknownError: Error Message => 'Element is not currently visible and may not be manipulated'
テストは chrome ドライバーで実行すると正常に実行されますが、phantomjs では失敗します。ここに何か不足していますか、それともフロントエンドの .NET コードに対して実行されないという phantomjs の制限です。