Soft assertions run only in integration with a test runner. They do not just throw an error, but rather record all failed assertions somewhere in the test runner. As you are using the cucumber, soft assertions is not working. try using the Soft assertion from cucumber.