I faced the same issue with my corolla ( indus ). I failed to find out the reason, i even changed the cap, Cleaned the Radiator, Checked for leakage, Replaced Pipes, replaced bottle cap and its pipe but nothing worked.
Now coming to the solution, reason why my radiator was getting empty was the hose pipe end ( from Engine End). There was a minor hole under the pipe, so small that water can not drip from it but pressurized steam can certainly escape from there. Since pipe was over that piece of metal so it was not visible. I replaced that part and every thing was normal.
Try to check every bit of your cooling system. I am sure you will find the problem.