@HostBinding('class.app-flex-style') appFlexClass = true;
const EC = protractor.ExpectedConditions;
const el = element(by.id('test')); // кнопка с id="test"
browser.wait(EC.presenceOf(el), 10000)
.then(() => {
console.log('YES');
el.click();
}, (error) => {
console.log('NO');
});
Failed: unknown error: failed to change window state to maximized, current state is normal
Не удалось: время ожидания ожидания асинхронных угловых задач заканчивается через 11 секунд. Это может быть связано с тем, что текущая страница не является угловым приложением.
*hasRole="['admin', 'user']"
checkRoles(userRoles: string[]) {
let resolve: boolean = false;
if (!this.hasRole) {
resolve = false;
}
userRoles.forEach((role: string) => {
if (this.hasRole.indexOf(role) !== -1) {
resolve = true;
}
});
if (resolve) {
this.viewContainerRef.createEmbeddedView(this.template);
} else {
this.viewContainerRef.clear();
}
}
browser.sleep(1000);
browser.pause();
browser.driver.manage().window().maximize();
browser.get('/login');
element(by.css('input[formControlName=email]')).sendKeys('blablabla');
element(by.css('input[formControlName=password]')).sendKeys('blablabla');
const loginButton = element(by.id('login'));
loginButton.click();
const el = element(by.id('test-link'));
browser.wait(
protractor.until.elementIsVisible(el), 3000, 'Error: Element did not display within 3 seconds'
);
Failed: No element found using locator: By(css selector, *[id="test-link"])
{
"/api": {
"target": "http://127.0.0.1:8000",
"secure": false
}
}
Project App
✓ should display welcome message
Executed 1 of 1 spec SUCCESS in 6 secs.
describe('Project App', () => {
it('should display welcome message', () => {
browser.get('/');
browser.pause();
expect('test').toEqual('test');
});
});
E/protractor - Could not find Angular on page localhost:49152 : retries looking for angular exceeded
Jasmine started
project App
✓ should display welcome message
Executed 1 of 1 spec SUCCESS in 0.733 sec.
[15:47:57] I/launcher - 0 instance(s) of WebDriver still running
[15:47:57] I/launcher - chrome #01 passed
Тут видимо от случая всё зависит. Когда мало чего используется (класс добавить только или еще чего), то лучше через @HostBinding, а если много всего, то удобнее через host: {...}. К примеру в select Material Desing вот такой вот host: