/tests/src/test/java/org/sigmah/endtoend/xpath/ext/HtmlXPath.java

http://sigma-h.googlecode.com/ · Java · 27 lines · 17 code · 6 blank · 4 comment · 1 complexity · 20be5cf678c94780c76cac22337a9787 MD5 · raw file

  1. /*
  2. * All Sigmah code is released under the GNU General Public License v3
  3. * See COPYRIGHT.txt and LICENSE.txt.
  4. */
  5. package org.sigmah.endtoend.xpath.ext;
  6. import org.sigmah.endtoend.xpath.Predicate;
  7. import org.sigmah.endtoend.xpath.PredicateLiteral;
  8. import org.sigmah.endtoend.xpath.XPath;
  9. public class HtmlXPath {
  10. public static Predicate ofClass(final String className) {
  11. return ofClasses(className);
  12. }
  13. public static Predicate ofClasses(String... classNames) {
  14. StringBuilder predicate = new StringBuilder("@class");
  15. for(String className : classNames) {
  16. predicate.append(XPath.format(" and contains(concat(' ', normalize-space(@class), ' '), '%s')",
  17. " " + className.trim() + " "));
  18. }
  19. return new PredicateLiteral(predicate.toString());
  20. }
  21. }