Step1; The starter contacts carry the ignition too. So if the starter is pressed while running, the contacts are dirty. Clean the contacts first.
Step2: Have the battery tested on a load tester. One is free; Two costs money.
Agree. Dirty starter switch contacts are most likely the issue.