I don't think it's the gas cap. that would give a 'leakage' code in the evap system.
I have seen a number of cases where vacuum was allowed to reach the fuel tank when it's not meant to. the result is that the fuel tank collapses, destroying the fuel pump and tank sender.
my point is that this may not be a case where 'tape over the light' is such a good idea.
check purge valves, check for shorts to solenoids.