If water is totally cold, then upper element is not getting 240V. Since element tested for 120V, then that says upper element is
burned out, upper thermostat is bad, or circuit breaker is bad.
Best thing is to buy multimeter and do 30 minute troubleshoot:
Also read information below for understanding how water heater works.
Testing elements for voltage can be misleading.
If water heater has 2 elements, then tank is 240Volts.
240V water heaters have 120V on each element at all times.
So elements have hot 120V power, but they are not turned on until the circuit is complete with 240V.
Open following links to read specifics about 120V and 240V
240V is made from two 120V Hot wires from breaker box.
Each 120V line from breaker is called a 'leg.'
So 240V circuit has two legs, and both legs need to be turned on to complete 240V circuit.
Water heater thermostats turn off only one leg.
The other leg is Hot all the time.
So when you test screws on an element, for example test between a screw and any bare metal part of tank, then the screw will always show 120V.
That is just one leg of the 240V circuit.
But the 240V circuit is not turned On until both legs are connected.
Every residential circuit needs two wires to complete the circuit, and in the case of 240V, those two wires are both 120V.
When the thermostat turns on, it turns on the second leg to the element and that completes the 240V circuit.http://waterheatertimer.org/How-it-works.html