input: Write a python function to extract visible text from a webpage using BeautifulSoup.
  assert visible_text(['Hello', '<style>test</style>', 'World']) == ['Hello', 'World']
  assert visible_text(['<script>alert("Hi")</script>', 'Visible Text', '<head>Head Content</head>']) == ['Visible Text']
  assert visible_text(['<title>Title</title>', 'Visible', '<!-- Comment -->', 'Text']) == ['Visible', 'Text']
output: def visible_text(html_elements):
      from bs4 import BeautifulSoup
      from bs4.element import Comment
  
      def is_visible(element):
          if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']:
              return False
          if isinstance(element, Comment):
              return False
          return True
  
      visible_texts = []
      for element in html_elements:
          soup = BeautifulSoup(element, 'html.parser')
          texts = soup.findAll(text=True)
          visible_texts.extend(filter(is_visible, texts))
  
      return visible_texts