Разница в том, что в одном случае вы вызываете run keywords
(с аргументами), а в другом случае вы запускаете print
(с аргументами).
Мы можем переформатировать ваш код впокажите, как на это смотрит робот:
run keyword if ${x} == 1
... run keywords print hi
... ELSE
... print hi
Когда выражение ложно, вы проваливаетесь и запускаете print hi
, и все работает.
Когда случай истинен, робот запускаетсяrun keywords print hi
.run keywords
обрабатывает каждый из своих аргументов как отдельное ключевое слово для запуска, поэтому он пытается запустить print
, а затем пытается hi
.Поскольку вы не указываете аргумент для печати, выдается ошибка.