By { public static By selector(String selector) { return new BySelector(selector); }  static By selector(String selector); static By id(String id); static By element(String element); static By element(Element element); static By element(IsElement<E> element); static By classname(String classname); static By classnames(String first, String second, String... remaining); static By classnames(String[] classnames); static By attribute(String name); static By attribute(String name, String value); static By attribute(String name, AttributeOperator operator, String value); static By data(String name); static By data(String name, String value); static By data(String name, AttributeOperator operator, String value); static By group(By first, By second, By... remaining); static By group(By[] selectors); final By and(By selector); final By child(By selector); final By desc(By selector); final By sibling(By selector); final By adjacentSibling(By selector); @Override int hashCode(); @Override boolean equals(Object o); @Override String toString();  }
@Test void bySelector() { assertEquals("#foo > .bar:hover", By.selector("#foo > .bar:hover").selector()); }