Я делаю display: flex
элемент по нажатию кнопки, а затем display: none
к тому же элементу после некоторых ajax вызовов. Я делаю интеграционное тестирование для того же, используя Capybara
с Selenium
драйвером. Проблема в том, что капибара обнаруживает видимость элемента, а иногда - нет, даже если элемент виден. Я пытался дать разные значения wait
, но иногда это работает, а иногда нет. Могу ли я исправить это? Код выглядит следующим образом:
ele.addEventListener('change', () => {
showSpinner(true);
ajaxCall().then(() => showSpinner(false));
}
showSpinner = (flag) => {
let spinner = document.getElementById('spinner');
if (!spinner) {
return;
} else if (flag) {
spinner.classList.add('show');
} else {
spinner.classList.remove('show');
}
};
.spinner.show {
display: flex;
}
.spinner {
display: none;
// other properties
}
В тестовом файле
choose 'radio_button' // if radio button
select 'some text', from: 'dropdown_element' // if dropdown
assert page.has_css?('.spinner', wait: 0)
Иногда это работает, а иногда нет. Элемент выбран или щелкнул. Это работает. Но не has_css
. Также я попытался использовать assert_css
, но я получаю ошибку. Так как же написать тестовый пример для вышеуказанной проблемы?