def prompt_user_to_select_link(self, links):
        """
        Prompt the user to select a link from a list to open.

        Return the link that was selected, or ``None`` if no link was selected.
        """
        link_pages = self.get_link_pages(links)
        n = 0
        while n in range(len(link_pages)):
            link_page = link_pages[n]
            text = 'Select a link to open (page {} of {}):\n\n'
            text = text.format(n+1, len(link_pages))
            text += self.get_link_page_text(link_page)
            if link_page is not link_pages[-1]:
                text += '[j] next page...'
            if link_page is not link_pages[0]:
                if link_page is not link_pages[-1]:
                    text += '\n'
                text += '[k] ...previous page'

            try:
                choice = chr(self.show_notification(text))
                try:
                    choice = int(choice)
                except ValueError:
                    pass
            except ValueError:
                return None
            if choice == 'j':
                if link_page is not link_pages[-1]:
                    n += 1
                continue
            elif choice == 'k':
                if link_page is not link_pages[0]:
                    n -= 1
                continue
            elif choice not in range(len(link_page)):
                return None
            return link_page[choice]['href']