code: @SuppressWarnings("unchecked")
      public <T extends XPathBuilder> T setAttribute(final String attribute, String value, final SearchType... searchTypes) {
          if (attribute != null) {
              if (value == null) {
                  this.attribute.remove(attribute);
              } else {
                  this.attribute.put(attribute, new SearchText(value, searchTypes));
              }
          }
          return (T) this;
      }
docs: <p><b>Used for finding element process (to generate xpath address)</b></p>
  <p>Result Example:</p>
  <pre>
  //*[@placeholder='Search']
  </pre>
  
  @param attribute   eg. placeholder
  @param value       eg. Search
  @param searchTypes accept only SearchType.EQUALS, SearchType.CONTAINS, SearchType.STARTS_WITH, SearchType.TRIM
  @param <T>         the element which calls this method
  @return this element