我有一个使用 .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 中失败。我在这里遗漏了什么,还是对 phantomjs 的 ia 限制,它不会针对前端 .NET 代码运行。