Annotation Interface FindBy


@Retention(RUNTIME) @Target({FIELD,TYPE}) public @interface FindBy
Used to mark a field on a Page Object to indicate an alternative mechanism for locating the element or a list of elements. Used in conjunction with PageFactory this allows users to quickly and easily create PageObjects.

It can be used on a types as well, but will not be processed by default.

You can either use this annotation by specifying both "how" and "using" or by specifying one of the location strategies (eg: "id") with an appropriate value to use. Both options will delegate down to the matching By methods in By class.

For example, these two annotations point to the same element:

 @FindBy(id = "foobar") WebElement foobar;
 @FindBy(how = How.ID, using = "foobar") WebElement foobar;
 

and these two annotations point to the same list of elements:

 @FindBy(tagName = "a") List<WebElement> links;
 @FindBy(how = How.TAG_NAME, using = "a") List<WebElement> links;
 
  • Element Details

    • how

      How how
      Default:
      UNSET
    • using

      String using
      Default:
      ""
    • id

      String id
      Default:
      ""
    • name

      String name
      Default:
      ""
    • className

      String className
      Default:
      ""
    • css

      String css
      Default:
      ""
    • tagName

      String tagName
      Default:
      ""
    • linkText

      String linkText
      Default:
      ""
    • partialLinkText

      String partialLinkText
      Default:
      ""
    • xpath

      String xpath
      Default:
      ""