Pros
I was placed into a software developer role with a reputable client/company right out of training, but many others were placed into production support or with "not-as-good" companies. "Promoted" to senior status after a year of being a valuable engineer for the client, but the pay raise was minimal. They'll hire almost anybody, and if you get valuable experience with the client, it can serve as a solid foundation for your next job which you'll be looking for sooner than later.
Cons
Feel more like a number than a valued employee. Pay is not very competitive. Benefits are almost non-existent. Language barrier can make communication more difficult. Infosys expects you to go above and beyond for the clients to create a more favorable impression of them, which in return would theoretically result in the client hiring more contractors from Infosys. The consequence of this is it becomes an unspoken expectation to work outside of standard 8-5 hours or on weekends. Two months of training was programming 101: could be useful to those without computer science related degrees, borderline useless to those with. Out of the ~60 people as part of my training batch, maybe 15 knew how to code already, but all 60 were being pushed into programming roles. By the end of training, maybe 20 people knew how to code (adequately enough to be placed into a client's team).