Having spent a long time negotiating salaries on behalf of candidates and clients, there are two things that are always clear - Everyone who wants a new job would like more money and everyone looking to hire is always trying to save some money.

There is nothing wrong with either of those thought processes and they make sense to me, but someone has to manage this mismatch otherwise no-one will be hired. 

A good recruiter will know your minimum salary requirement and the hiring company's maximum salary potential so (in theory) there will never be a problem. 

If you are applying for a position directly, you won't  have the benefit of a recruiter's additional knowledge.  Be thorough and before the interview speak with someone who knows about the salary for the role. 

Generally I've found that businesses that are coy about salaries have one (or maybe two) of two problems.  Firstly they want far more from a skill set  than they can afford or have internal salary issues where people already working in the business are underpaid in the same role. 

Either way, I think that if a company is open about salaries at the beginning of a recruitment process, they are probably pretty up front about most things and therefore a much better bet for your next career move.