Наша команда QA использует транспортир 5.4.2 для тестирования функций / интеграции в угловом веб-приложении. Часть приложения получает данные из нашего API, а затем с помощью CSS применяет к нему класс «регистр предложений», чтобы принудительно ввести текст в желаемую заглавную букву: верхний регистр первого символа, нижний регистр всех следующих символов - независимо от формата ввода.
Это прекрасно работает для приложения, отображаемого в браузере. Но когда наши тесты извлекают текст элемента с помощью element.getText (), возвращаемая строка выполняет преобразование текста в нижнем регистре, но не в верхнем регистре первого символа.
Стиль CSS:
/* convert something to sentence case */
.sentence-case {
text-transform: lowercase;
}
.sentence-case::first-letter {
text-transform: uppercase;
}
Пример HTML
<section id="testSect">
<h2>Test Section</h2>
<br/>
<div class='sentence-case'>ABCDEF</div>
<div class='sentence-case'>aBcDeF</div>
<div class='sentence-case'>Abcdef</div>
<div class='sentence-case'>ABCDEF</div>
</section>
Код испытания транспортира:
describe('sentence-case transform', () => {
it('with GetText', () => {
let foo: ElementArrayFinder = element.all(by.css('#testSect div.sentence-case'));
browser.get('http://localhost:4200/testPage');
foo.each((bar: ElementFinder) => {
expect(bar.getText()).toBe('Abcdef');
})
})
})
Результаты испытаний:
sentence-case transform
× with GetText
- Expected 'abcdef' to be 'Abcdef'.
- Expected 'abcdef' to be 'Abcdef'.
- Expected 'abcdef' to be 'Abcdef'.
- Expected 'abcdef' to be 'Abcdef'.
- Это ограничение в поддержке транспортира для псевдо-селекторов?
- Есть ли обходной путь в транспортире для получения окончательного значения преобразованного текста?