На этой неделе убрал из автотеста клик, для которого до этого искал обход.
Сценарий простой: создать строку в справочнике и удалить её. Между этими шагами я добавил клик по строке - логично же сначала выбрать то, что собираешься удалить.
При разборе взаимодействия с таблицей дошёл до dispatch_event("click") - отправки события напрямую элементу.
Но в итоге решение оказалось проще: в текущем интерфейсе последняя созданная строка уже выбрана автоматически. Кнопка «Удалить» работает с текущим выделением, поэтому отдельный клик не требуется.
Более того, повторный клик по ячейке выбранной строки позволяет редактировать значение. Получается, шаг, которым я хотел выбрать строку, в этом состоянии интерфейса уже имел другой смысл.
В финальном варианте убрал и клик, и dispatch_event(). А в Page Object разделил методы для выбора строки, клика по строке и активации редактирования значения.
При ручной работе с таблицей я, возможно, уже видел это автовыделение, но не акцентировал на нём внимание. Когда стал раскладывать сценарий на отдельные действия автотеста, эта деталь оказалась важной.
Для меня ценность этого разбора - в необходимости точнее учитывать состояние интерфейса между шагами. Действие может выглядеть уместным в описании сценария, но в конкретном состоянии выполнять уже другую функцию.
Какие особенности интерфейса вы замечали именно при автоматизации, хотя до этого неоднократно проходили тот же сценарий вручную?