If test matches were decided on how many sessions each team has won, then for sure India would have won all three test matches but unfortunately, it is not like that.
Analysing only the two tests where the Indian team lost their way, it was their batting in the 2nd innings that let them down. In the first test, they made 364 runs in the 2nd innings and in the last test, they made only 170 runs in the 2nd innings again and lost the match. No matter how bad the wicket was, 192 should have been chased by the Indian team, they had some big names in the team but they collapsed badly.
I agree. 192 was chasable. After all the hard work in the first innings by KL Rahul, Rishabh Pant and Ravindra Jadeja, it was a massive let down to get bundled out for 170 in the second innings. England didn't even had a quality spinner. Shoaib Bashir is miles away from achieving the sort of reputation that Jack Leach once held. So for England it was left to the pace-bowling quadrant of Chris Woakes, Jofra Archer, Ben Stokes and Brydon Carse to get the crucial wickets.
KL Rahul played quite well others should support him by scoring runs too. He alone can't score quickly and also protect his wicket at the same time. His batting has been sensible and he's been fairly consistent in his Test career so far.
India could have won if they had handled the key moments more better. In Test cricket, you have to step up during crucial times, not let things slip. India probably had one more session to play, but they lost those important moments and got bundled out for just 170! The team has all the skills, they just need to be a bit smarter. In certain conditions, it might help to restructure the batting order by promoting players who are more solid and less flamboyant.