Like their names say and as documented:
-- Exists is set to true if the object does exist;
-- Visible is set to true if the object is visible somewhere on the screen.
Thank you for the updates.
How will you decide whether we should use the Exists or visisble property of object when both the properties are available ?
It depends on your needs.
.Exists property always exists for the objects and/or stubs obtained via .FindXXX() methods. For latters or if the object was destroyed/recreated .Exists will be set to false.
Object may exist (for example, on the web page) but be not visible. In this case the value of .Visible will be false.