As " tool king" said, get a good multimeter and start with checking how far does the battery drop when turning switch to start. Test positive cable to starter for voltage drop. Test negative cable from battery to engine ground for voltage drop, and frame ground from frame to battery negative. Test from Battery positve to key switch positive for Voltage drop, along with from Battery Positive to Fuse panel for voltage drop. Almost forgot to mention to test from Key Switch "S" terminal to "S" terminal of starter for voltage drop. Also check from Alternator positive to Battery Positive for Voltage Drop. Lastly check from Battery Positive to Fuel solenoid pull and hold connections for voltage drop. If you know how to do these tests properly, you will probably find something defective. Remember that to find voltage drop ( loss of potential) you need to have power trying to go through a cable or switch. Cranking an engine or an attempted start will work for testing battery and ground cables.
Remember that if a battery with a meter's test leads touching the positive and negative posts does not drop in voltage from lets say 12.6 volts to (9.6 to 11 volts) with an attempted start, that means the battery is sufficiently strong and you have a connection problem, or starter problem. If the starter solenoid goes clunk with your hand on it while holding the Key in the start position, then you know you have a defective solenoid or starter itself. You will need a helper or recording multimeter to do these tests.
Once you fix a connection so that full juice can go to starter, then sometimes you will find the battery is too weak for the new load you created with the new connection.
Any good Heavy equipment mechanic or automotive mechanic can test all these things mentioned and find the problem.
Fluke Meters has a good information supply for acceptable numbers on your meter for many of these tests. You tube videos also.
Way better to find real cause than throw parts at it and still no start or run.
Simon C