В процессе создания фронтендных тестов наткнулся на кастомный инпут, для которого не срабатывают fillField и pressKey, попытался через хелпер создать функцию под такой кастмный инпут, но как то не вышло
public function sendKeysToDateInput($target, $keysString) {
$elements = $this->getModule('WebDriver')->_findElements($target);
$elements->sendKeys($keysString);
}
Но тут случается ошибка что сендкейс вызывается не для обьекта.
Call to a member function sendKeys() on a non-object
in C:\xampp\htdocs\codeception\tests_support\Helper\Acceptance.php:14
Полистав документацию и немного погуглив я не нашел подобных примеров.
Если кто то сочтет нужным, то могу показать сайт с этим кастомным инпутом, не хочется в общий доступ давать ссылку на рабочий проект.
public function sendKeysToDateInput($target, $keysString) {
$element = $this->getModule(‘WebDriver’)-_findElement($target);
$element->sendKeys($keysString);
}
Я пробовал и так, но тут снова ошибка(
FATAL ERROR. TESTS NOT FINISHED.
Call to undefined method Codeception\Module\WebDriver::_findElement()
В обычном силениума да так и есть, но в кодецептионе так не получается. Но учитывая что стандартный прессКей и филлФилд не работают, проблема все равно не в этом(
Сделал тесты для проекта, где нет автоматизации, застопорился на одном кастомном инпуте((
Вернемся к исходному, так как findElement требует много дополнительного:
public function sendKeysToDateInput($target, $keysString) {
$elements = $this->getModule('WebDriver')->_findElements($target);
$elements[0]->sendKeys($keysString);
}
Да, теперь ошибки нет, но на кастомный инпут все равно не реагирует(
В инпуте по дефолту стоят точки, которые нельзя удалить и можно вводить только цифры. (предполагается вводы даты в формате dd.MM.yyyy)
Не могу придумать как еще попытаться заполнить этот инпут