ответ

0

Проблема, которая происходит здесь, заключается в том, что элемент html скрывается чем-то, возможно, css где-то. Поскольку он скрыт (display: none), WebDriver не видит его и поэтому не может взаимодействовать с ним. Чтобы устранить эту проблему, вам нужно использовать JS для скрытия элемента.

использование этого $I->executeJS('jQuery("#your-css-selector").show()');

Это не происходит в приемочных испытаниях, потому что PHP браузер смотрит на страницу Source, и поэтому может видеть все, в то время как WebDriver видеть то, что пользователь увидеть на браузере.

2

Иногда это решение не работает, потому что элемент недоступен по какой-либо другой загадочной причине.
У нас была ситуация, когда мы не смогли использовать элемент <select>, чтобы выбрать один из вариантов.
Кроме того, было обнаружено поведение, вызванное событием «change», когда была выбрана опция.
Мы смогли решить это так.

$js = "jQuery('#chosen-option-quantity-2').val('2').trigger('change');"; 
$I->executeJS($js); 

поэтому первая команда выбирает эту опцию, а вторая вызывает событие изменения.
Я надеюсь, что это поможет кому-то, даже если это я в будущем.