Я не могу взаимодействовать с элементом, используя тесты браузера. Он говорит, что элемент не взаимодействует или не виден. Этого не происходит в AcceptanceОшибка кода ElementNotVisibleException, неспособная выбрать параметр, или нажмите
ответ
Проблема, которая происходит здесь, заключается в том, что элемент html скрывается чем-то, возможно, css где-то. Поскольку он скрыт (display: none), WebDriver не видит его и поэтому не может взаимодействовать с ним. Чтобы устранить эту проблему, вам нужно использовать JS для скрытия элемента.
использование этого $I->executeJS('jQuery("#your-css-selector").show()');
Это не происходит в приемочных испытаниях, потому что PHP браузер смотрит на страницу Source, и поэтому может видеть все, в то время как WebDriver видеть то, что пользователь увидеть на браузере.
Иногда это решение не работает, потому что элемент недоступен по какой-либо другой загадочной причине.
У нас была ситуация, когда мы не смогли использовать элемент <select>
, чтобы выбрать один из вариантов.
Кроме того, было обнаружено поведение, вызванное событием «change», когда была выбрана опция.
Мы смогли решить это так.
$js = "jQuery('#chosen-option-quantity-2').val('2').trigger('change');";
$I->executeJS($js);
поэтому первая команда выбирает эту опцию, а вторая вызывает событие изменения.
Я надеюсь, что это поможет кому-то, даже если это я в будущем.