Individual users can add different web parts to each page. So the web parts
on any given page are dependent on what user is currently viewing the page.
You can programmatically obtain a collection object in client side
Javascript that represents all the web parts on the rendered page or you can
find out what web parts are on a page by querying the SPWebPartManager to
get the web parts on the page while it is being rendered. There is no way
to tell other than in the process of rendering the web part.