Using rules to grant new role upon visiting page
The Rules Path and Rules URL Argument modules trigger events based on the current URL being viewed.

You could also use the Rules Link module to generate a custom link that will trigger your rules. The catch here is that this specific link must be clicked to access the page and the user I believe must be signed in.

If you need fine tuned control over when the Rules event is triggered you could even implement your own Rules Event.