Попробуйте отобразить, какое значение возвращается после запуска первой строки кода.
Так
product_name_error_message = @driver.find_element(:tag_name => "span", :class => "error").text
puts product_name_error_message
assert product_name_error_message == "Product Name must be greater than 3 and less than 255 characters!"
Я считаю, что эта переменная в любом случае не содержит этого значения.
Также вы можете объединить все в одну линию -
verify { assert(@driver.find_element(:tag_name => "span", :class => "error").text.include?(Product Name must be greater than 3 and less than 255 characters!"),"The text is present")}