Others have said it. You must verify that you have available voltage with a voltmeter. You cannot work on electrical stuff without a digital voltmeter. Otherwise, you're just guessing. If while cranking, you have the proper available cranking voltage then you have resistance somewhere in the circuit. You can't check with on ohmmeter for resistance because the meter is only using a very small amount of current to check for resistance. That works on small current circuits but not on large ones. That amount of "meter" current can easily flow through a large cable or solenoid. The parts will show no resistance. But when a large amount of current like a starter tries flowing through, it cannot. So, the way you check for this is by doing a voltage drop test. It's easy, its fast and it will find the problem if its resistance.
Forget its electrical and let's assume it has water flowing in it. If it was a very large pipe the water would come out the end with no pressure because the pipe offers no resistance. Now if the pipe had a restriction somewhere in it and you had access ports and were able to take pressure readings at different spots along the pipe when you found the restriction the water would try and flow around the restriction and out the access port and through your pressure gauge. That is exactly what is happening when you do a voltage drop test. If the area between your two-meter leads is okay, there will be no back pressure there because the cable, connection or device offers less resistance than the meter. does. When you put your leads on either side of the restriction with current flowing and there is a restriction in that spot the current will try to flow around the restriction and through the meter.
Voltage is electrical pressure. So, on a 12V system if your meter read 1.5V that means there is a 1.5V pressure drop between your two leads. Only 10.5V of pressure would be making it to your starter and it would crank slowly. That entire 12 Volts has to be accounted for. If the battery measures 12.6 volts across the posts and you put the meter leads across both ends of the positive cable and it measures .1 volt. You put the leads across both sides of the starter cable, and it reads .2 volt. You put the leads across both ends of the ground cable and it reads .1 volt. That is .4 volt drop That means that it you put the leads across the positive side and negative side of the starter you should see 12.2V. There cannot be any missing voltage. So, what if if the starter shows a 10.2V drop. Somewhere we are missing 2 volts. Let's try putting one meter lead on the positive battery post and one lead on the positive battery cable and crank the engine. The meter reads 2 volts. There it is the resistance is in the battery terminal to battery post connection. Do a voltage drop test across the starter when it's cold and when it's hot. If you want to just, try this test. Set the meter on the 12V DC scale and stick the positive lead on the batterie's positive post and the negative lead on the cable and turn on the headlights. It should read zero. Turn off the lights, remove the battery cable and just barely set it back on causing a bad connection and turn repeat the test. You will get a voltage reading on your meter, that is the drop in voltage across that bad connection. This is how electrical stiff must be tested.
Here is YouTube video showing a voltage drop test.
https://www.youtube.com/watch?v=paw80mS_Kxg