Interface SelenideElement

All Superinterfaces:
org.openqa.selenium.interactions.Locatable, org.openqa.selenium.SearchContext, org.openqa.selenium.TakesScreenshot, org.openqa.selenium.WebElement, org.openqa.selenium.WrapsDriver, org.openqa.selenium.WrapsElement
All Known Subinterfaces:
SelenideAppiumElement

@ParametersAreNonnullByDefault public interface SelenideElement extends org.openqa.selenium.WebElement, org.openqa.selenium.WrapsDriver, org.openqa.selenium.WrapsElement, org.openqa.selenium.interactions.Locatable, org.openqa.selenium.TakesScreenshot
Wrapper around WebElement with additional methods like shouldBe(WebElementCondition...) and shouldHave(WebElementCondition...)
  • Method Details

    • setValue

      @Nonnull @CanIgnoreReturnValue SelenideElement setValue(@Nullable String text)
      Set value to given input element.

      Applicable for:: <input> and <textarea>.

      Implementation details:

      If Configuration.fastSetValue is true, sets value by javascript instead of using Selenium built-in "sendKey" function and trigger "focus", "keydown", "keypress", "input", "keyup", "change" events.

      In other case behavior will be:

       1. WebElement.clear()
       2. WebElement.sendKeys(text)
       3. Trigger change event
       
      Parameters:
      text - Any text to enter into the text field or set by value for select/radio.
      See Also:
    • val

      @Nonnull @CanIgnoreReturnValue SelenideElement val(@Nullable String text)
      See Also:
    • val

      @Nonnull @CanIgnoreReturnValue SelenideElement val(SetValueOptions options)
      See Also:
    • setValue

      @Nonnull @CanIgnoreReturnValue SelenideElement setValue(SetValueOptions options)
      Since:
      6.5.0
      See Also:
    • type

      @Nonnull @CanIgnoreReturnValue SelenideElement type(CharSequence text)
      Mimic how real user would type in a text field Useful to work with autosuggestion dropdown
      See Also:
    • type

      @Nonnull @CanIgnoreReturnValue SelenideElement type(TypeOptions options)
      Parameters:
      options - parameters specifying how exactly you want to type the text
      See Also:
    • append

      @Nonnull @CanIgnoreReturnValue SelenideElement append(String text)
      Append given text to the text field and trigger "change" event.

      Applicable for: <input> and <textarea>.

      Implementation details:

      This is the same as

         1. WebElement.sendKeys(text)
         2. Trigger change event
       
      Parameters:
      text - Any text to append into the text field.
      See Also:
    • paste

      @Nonnull @CanIgnoreReturnValue SelenideElement paste()
      Append text from clipboard to the text field and trigger "change" event.
      See Also:
    • clear

      @CanIgnoreReturnValue void clear()
      Clear the input field

      Basically, it's the same as WebElement.clear(), but it works. :)

      Specified by:
      clear in interface org.openqa.selenium.WebElement
      See Also:
    • pressEnter

      @Nonnull @CanIgnoreReturnValue SelenideElement pressEnter()
      Press ENTER. Useful for input field and textareas:
        $("query").val("Dear Santa").pressEnter();

      Implementation details: Check that element is displayed and execute

        WebElement.sendKeys(Keys.ENTER)
      See Also:
    • pressTab

      @Nonnull @CanIgnoreReturnValue SelenideElement pressTab()
      Press TAB. Useful for input field and text areas:
        $("#to").val("santa@claus.fi").pressTab();

      Implementation details:

      Check that element is displayed and execute

        WebElement.sendKeys(Keys.TAB)
      See Also:
    • unfocus

      @Nonnull @CanIgnoreReturnValue SelenideElement unfocus()
      Remove focus from this element
      Since:
      7.1.0
      See Also:
    • pressEscape

      @Nonnull @CanIgnoreReturnValue SelenideElement pressEscape()
      Press ESCAPE. Useful for input field and textareas:
        $(".edit").click().pressEscape();

      Implementation details:

      Check that element is displayed and execute

        WebElement.sendKeys(Keys.ESCAPE)
      See Also:
    • press

      @Nonnull @CanIgnoreReturnValue SelenideElement press(CharSequence... keysToPress)
      Press a Key(s) on Keyboard:
        $(".edit").press(Keys.DOWN).click();

      Implementation details:

      Checks that element is displayed and executes

        WebElement.sendKeys(keysToPress)
      Compared to WebElement.sendKeys(CharSequence...), this method is chainable.
      Since:
      6.10.2
      See Also:
    • getText

      @CheckReturnValue @Nonnull String getText()
      Get the visible text of this element, including sub-elements without leading/trailing whitespace. NB! For "select", returns text(s) of selected option(s).
      Specified by:
      getText in interface org.openqa.selenium.WebElement
      Returns:
      The innerText of this element
      See Also:
    • getAlias

      @CheckReturnValue @Nullable String getAlias()
      Element alias, which can be set with as(String text) Usually you should not need this method, unless you are writing a custom reporting engine like Allure Reports.
      Returns:
      Alias of this element or null, if element alias is not set
      Since:
      5.20.0
      See Also:
    • text

      @CheckReturnValue @Nonnull String text()
      Short form of getText()
      See Also:
    • getOwnText

      @CheckReturnValue @Nonnull String getOwnText()
      Get the text of the element WITHOUT children.
      See Also:
    • innerText

      @CheckReturnValue @Nonnull String innerText()
      Get the text code of the element with children.

      It can be used to get the text of a hidden element.

      Short form of getAttribute("textContent") or getAttribute("innerText") depending on browser.

      See Also:
    • innerHtml

      @CheckReturnValue @Nonnull String innerHtml()
      Get the HTML code of the element with children.

      It can be used to get the html of a hidden element.

      Short form of getAttribute("innerHTML").

      See Also:
    • attr

      @CheckReturnValue @Nullable String attr(String attributeName)
      Get the attribute of the element. Synonym for getAttribute(String)
      Returns:
      null if attribute is missing
      See Also:
    • name

      @CheckReturnValue @Nullable String name()
      Get the "name" attribute of the element
      Returns:
      attribute "name" value or null if attribute is missing
      See Also:
    • val

      @CheckReturnValue @Nullable String val()
      Get the "value" attribute of the element Same as getValue()
      Returns:
      attribute "value" value or null if attribute is missing
      See Also:
    • getValue

      @CheckReturnValue @Nullable String getValue()
      Get the "value" attribute of the element
      Returns:
      attribute "value" value or null if attribute is missing
      Since:
      3.1
      See Also:
    • pseudo

      @CheckReturnValue @Nonnull String pseudo(String pseudoElementName, String propertyName)
      Get the property value of the pseudo-element
      Parameters:
      pseudoElementName - pseudo-element name of the element, ":before", ":after", ":first-letter", ":first-line", ":selection"
      propertyName - property name of the pseudo-element
      Returns:
      the property value or "" if the property is missing
      See Also:
    • pseudo

      @CheckReturnValue @Nonnull String pseudo(String pseudoElementName)
      Get content of the pseudo-element
      Parameters:
      pseudoElementName - pseudo-element name of the element, ":before", ":after"
      Returns:
      the content value or "none" if the content is missing
      See Also:
    • selectRadio

      @Nonnull @CanIgnoreReturnValue SelenideElement selectRadio(String value)
      Select radio button
      Parameters:
      value - value of radio button to select
      Returns:
      selected "input type=radio" element
      See Also:
    • data

      @CheckReturnValue @Nullable String data(String dataAttributeName)
      Get value of attribute "data-dataAttributeName"
      See Also:
    • getAttribute

      @Nullable @CheckReturnValue String getAttribute(String name)
      Specified by:
      getAttribute in interface org.openqa.selenium.WebElement
      See Also:
    • getCssValue

      @Nonnull @CheckReturnValue String getCssValue(String propertyName)
      Specified by:
      getCssValue in interface org.openqa.selenium.WebElement
      See Also:
    • exists

      @CheckReturnValue boolean exists()
      Checks if element exists true on the current page.
      Returns:
      false if element is not found, browser is closed or any WebDriver exception happened
      See Also:
    • isDisplayed

      @CheckReturnValue boolean isDisplayed()
      Check if this element exists and visible.
      Specified by:
      isDisplayed in interface org.openqa.selenium.WebElement
      Returns:
      false if element does not exist, is invisible, browser is closed or any WebDriver exception happened.
      See Also:
    • is

      @CheckReturnValue boolean is(WebElementCondition condition)
      immediately returns true if element matches given condition Method doesn't wait! WARNING: This method can help implementing crooks, but it is not needed for typical ui tests.
      See Also:
    • is

      boolean is(WebElementCondition condition, Duration timeout)
      Checks if element matches given condition (with the given timeout)
      1. If matches, immediately returns true
      2. If no, waits (up to given timeout), and if still no, returns false.

      WARNING: This method can help implementing crooks, but we highly recommend to create a proper solution.

      Once again: We DO NOT RECOMMEND using this method.

      Since:
      7.1.0
      See Also:
    • has

      @CheckReturnValue boolean has(WebElementCondition condition)
      immediately returns true if element matches given condition Method doesn't wait! WARNING: This method can help implementing crooks, but it is not needed for typical ui tests.
      See Also:
    • has

      @CheckReturnValue boolean has(WebElementCondition condition, Duration timeout)
      See Also:
    • setSelected

      @Nonnull @CanIgnoreReturnValue SelenideElement setSelected(boolean selected)
      Set checkbox state to CHECKED or UNCHECKED.
      Parameters:
      selected - true for checked and false for unchecked
      See Also:
    • should

      @Nonnull @CanIgnoreReturnValue SelenideElement should(WebElementCondition... condition)
      Sequentially checks that given element meets all given conditions.

      IMPORTANT: If element does not match then conditions immediately, waits up to 4 seconds until element meets the conditions. It's extremely useful for dynamic content.

      Timeout is configurable via Configuration.timeout

      For example: $("#errorMessage").should(appear);

      Returns:
      Given element, useful for chaining: $("#errorMessage").should(appear).shouldBe(enabled);
      See Also:
    • should

      @Nonnull @CanIgnoreReturnValue SelenideElement should(WebElementCondition condition, Duration timeout)
      Wait until given element meets given condition (with given timeout)
    • shouldHave

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldHave(WebElementCondition... condition)
      Synonym for should(WebElementCondition...). Useful for better readability.

      For example: $("#errorMessage").shouldHave(text("Hello"), text("World"));

      See Also:
    • shouldHave

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldHave(WebElementCondition condition, Duration timeout)
      Wait until given element meets given condition (with given timeout)
    • shouldBe

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldBe(WebElementCondition... condition)
      Synonym for should(WebElementCondition...). Useful for better readability.

      For example: $("#errorMessage").shouldBe(visible, enabled);

      See Also:
    • shouldBe

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldBe(WebElementCondition condition, Duration timeout)
      Wait until given element meets given condition (with given timeout)
    • shouldNot

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldNot(WebElementCondition... condition)
      Sequentially checks that given element does not meet given conditions.

      IMPORTANT: If element does match the conditions, waits up to 4 seconds until element does not meet the conditions. It's extremely useful for dynamic content.

      Timeout is configurable via Configuration.timeout

      For example: $("#errorMessage").should(exist);

      See Also:
    • shouldNot

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldNot(WebElementCondition condition, Duration timeout)
      Wait until given element meets given condition (with given timeout)
    • shouldNotHave

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldNotHave(WebElementCondition... condition)
      Synonym for shouldNot(WebElementCondition...). Useful for better readability.

      For example: $("#errorMessage").shouldNotHave(text("Exception"), text("Error"));

      See Also:
    • shouldNotHave

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldNotHave(WebElementCondition condition, Duration timeout)
      Wait until given element does NOT meet given condition (with given timeout)
    • shouldNotBe

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldNotBe(WebElementCondition... condition)
      Synonym for shouldNot(WebElementCondition...). Useful for better readability.

      For example: $("#errorMessage").shouldNotBe(visible, enabled);

      See Also:
    • shouldNotBe

      @Nonnull @CanIgnoreReturnValue SelenideElement shouldNotBe(WebElementCondition condition, Duration timeout)
      Wait until given element does NOT meet given condition (with given timeout)
    • toString

      @CheckReturnValue @Nonnull String toString()
      Short description of WebElement, usually a selector. Useful for logging and debugging. Not recommended to use for test verifications.
      Overrides:
      toString in class Object
      Returns:
      e.g. call to $("#loginButton").toString() returns "{#loginButton}"
      See Also:
    • describe

      @CheckReturnValue @Nonnull String describe()
      Displays WebElement in human-readable format. Useful for logging and debugging. Not recommended to use for test verifications. May work relatively slowly because it fetches actual element information from browser.
      Returns:
      e.g. Order has been confirmed
      Since:
      6.14.0
      See Also:
    • highlight

      @Nonnull SelenideElement highlight()
      Since:
      6.17.0
      See Also:
    • highlight

      @Nonnull SelenideElement highlight(HighlightOptions options)
      Since:
      6.17.0
      See Also:
    • as

      @CheckReturnValue @Nonnull SelenideElement as(String alias)
      Give this element a human-readable name Caution: you probably don't need this method. It's always a good idea to have the actual selector instead of "nice" description (which might be misleading or even lying).
      Parameters:
      alias - a human-readable name of this element (null or empty string not allowed)
      Returns:
      this element
      Since:
      5.17.0
      See Also:
    • parent

      @CheckReturnValue @Nonnull SelenideElement parent()
      Get parent element of this element (lazy evaluation) For example, $("td").parent() could give some "tr".
      Returns:
      Parent element
      See Also:
    • sibling

      @CheckReturnValue @Nonnull SelenideElement sibling(int index)
      Get the following sibling element of this element For example, $("td").sibling(0) will give the first following sibling element of "td"
      Parameters:
      index - the index of sibling element
      Returns:
      Sibling element by index
      See Also:
    • preceding

      @CheckReturnValue @Nonnull SelenideElement preceding(int index)
      Get the preceding sibling element of this element For example, $("td").preceding(0) will give the first preceding sibling element of "td"
      Parameters:
      index - the index of sibling element
      Returns:
      Sibling element by index
      See Also:
    • lastChild

      @CheckReturnValue @Nonnull SelenideElement lastChild()
      Get last child element of this element For example, $("tr").lastChild(); could give the last "td".
      See Also:
    • ancestor

      @CheckReturnValue @Nonnull SelenideElement ancestor(String selector)
      Locates the closest ancestor element matching given criteria.
      For example, $("td").ancestor("table") returns the closest "table" element above "td".
      Same as closest("selector", 0) or closest("selector"). Examples:
      $("td").ancestor("table") will find the closest ancestor with tag table
      $("td").ancestor(".container") will find the closest ancestor with CSS class .container
      $("td").ancestor("[data-testid]") will find the closest ancestor with attribute data-testid
      $("td").ancestor("[data-testid=test-value]") will find the closest ancestor with attribute and attribute's value data-testid=test-value
      Parameters:
      selector - Either HTML tag, CSS class, attribute or attribute with value.
      E.g. form, .active, [data-testid], [data-testid=test-value]
      Returns:
      Matching ancestor element
      See Also:
    • ancestor

      @CheckReturnValue @Nonnull SelenideElement ancestor(String selector, int index)
      Locates the Nth ancestor element matching given criteria.
      Examples:
      $("td").ancestor("table", 1) will find the 2nd ancestor with tag table
      $("td").ancestor(".container", 1) will find the 2nd ancestor with CSS class .container
      $("td").ancestor("[data-testid]", 1) will find the 2nd ancestor with attribute data-testid
      $("td").ancestor("[data-testid=test-value]", 1) will find the 2nd ancestor with attribute and attribute's value data-testid=test-value
      Parameters:
      selector - Either HTML tag, CSS class, attribute or attribute with value.
      E.g. form, .active, [data-testid], [data-testid=test-value]
      index - 0...N index of the ancestor. 0 is the closest, 1 is higher up the hierarchy, etc...
      Returns:
      Matching ancestor element
      See Also:
    • closest

      @CheckReturnValue @Nonnull SelenideElement closest(String selector)
      Same as ancestor(String). Locates the closest ancestor element matching given criteria.
      For example, $("td").closest("table") returns the closest "table" element above "td".
      Same as ancestor("selector", 0). Examples:
      $("td").closest("table") will find the closest ancestor with tag table
      $("td").closest(".container") will find the closest ancestor with CSS class .container
      $("td").closest("[data-testid]") will find the closest ancestor with attribute data-testid
      $("td").closest("[data-testid=test-value]") will find the closest ancestor with attribute and attribute's value data-testid=test-value
      Parameters:
      selector - Either HTML tag, CSS class, attribute or attribute with value.
      E.g. form, .active, [data-testid], [data-testid=test-value]
      Returns:
      Matching ancestor element
      See Also:
    • find

      @CheckReturnValue @Nonnull SelenideElement find(String cssSelector)
      Locates the first matching element inside given element

      Short form of webElement.findElement(By.cssSelector(cssSelector))

      See Also:
    • find

      @CheckReturnValue @Nonnull SelenideElement find(String cssSelector, int index)
      Locates the Nth matching element inside given element
      See Also:
    • find

      @CheckReturnValue @Nonnull SelenideElement find(org.openqa.selenium.By selector)
      Same as find(String)
      See Also:
    • find

      @CheckReturnValue @Nonnull SelenideElement find(org.openqa.selenium.By selector, int index)
      See Also:
    • $

      @CheckReturnValue @Nonnull SelenideElement $(String cssSelector)
      Same as find(String)
      See Also:
    • $

      @CheckReturnValue @Nonnull SelenideElement $(String cssSelector, int index)
      See Also:
    • $

      @CheckReturnValue @Nonnull SelenideElement $(org.openqa.selenium.By selector)
      Same as find(String)
      See Also:
    • $

      @CheckReturnValue @Nonnull SelenideElement $(org.openqa.selenium.By selector, int index)
      See Also:
    • $x

      @CheckReturnValue @Nonnull SelenideElement $x(String xpath)
      Locates the first matching element inside given element using xpath locator

      Short form of webElement.findElement(By.xpath(xpathLocator))

      See Also:
    • $x

      @CheckReturnValue @Nonnull SelenideElement $x(String xpath, int index)
      Locates the Nth matching element inside given element using xpath locator
      See Also:
    • findAll

      @CheckReturnValue @Nonnull ElementsCollection findAll(String cssSelector)
      Short form of webDriver.findElements(thisElement, By.cssSelector(cssSelector))

      For example, $("#multirowTable").findAll("tr.active").shouldHave(size(2));

      Returns:
      list of elements inside given element matching given CSS selector
      See Also:
    • findAll

      @CheckReturnValue @Nonnull ElementsCollection findAll(org.openqa.selenium.By selector)
      Short form of webDriver.findElements(thisElement, selector)

      For example, $("#multirowTable").findAll(By.className("active")).shouldHave(size(2));

      Returns:
      list of elements inside given element matching given criteria
      See Also:
    • $$

      @CheckReturnValue @Nonnull ElementsCollection $$(String cssSelector)
      See Also:
    • $$

      @CheckReturnValue @Nonnull ElementsCollection $$(org.openqa.selenium.By selector)
      Same as findAll(By)
    • $$x

      @CheckReturnValue @Nonnull ElementsCollection $$x(String xpath)
      Short form of webDriver.findElements(thisElement, By.xpath(xpath))

      For example, $("#multirowTable").$$x("./input").shouldHave(size(2));

      Returns:
      list of elements inside given element matching given xpath locator
      See Also:
    • uploadFromClasspath

      @Nonnull @CanIgnoreReturnValue File uploadFromClasspath(String... fileName)
      Upload file into file upload field. File is searched from classpath.

      Multiple file upload is also supported. Just pass as many file names as you wish.

      Applicable for: <input type="file">.

      Parameters:
      fileName - name of the file or the relative path in classpath e.g. "files/1.pfd"
      Returns:
      the object of the first file uploaded
      Throws:
      IllegalArgumentException - if any of the files is not found
      See Also:
    • uploadFile

      @Nonnull @CanIgnoreReturnValue File uploadFile(File... file)
      Upload file into file upload field.

      Multiple file upload is also supported. Just pass as many files as you wish.

      Applicable for: <input type="file">.

      Parameters:
      file - file object(s)
      Returns:
      the object of the first file uploaded
      Throws:
      IllegalArgumentException - if any of the files is not found, or other errors
      See Also:
    • selectOption

      void selectOption(int index, int... otherIndexes)
      Select an option from dropdown list (by index)

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Parameters:
      index - 0..N (0 means first option)
      otherIndexes - other indexes (if you need to select multiple options)
      See Also:
    • selectOption

      void selectOption(String text, String... otherTexts)
      Select an option from dropdown list (by text)

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Parameters:
      text - visible text of option
      otherTexts - other texts (if you need to select multiple options)
      See Also:
    • selectOptionContainingText

      void selectOptionContainingText(String text, String... otherTexts)
      Select an option from dropdown list that contains given text

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Parameters:
      text - substring of visible text of option
      otherTexts - other texts (if you need to select multiple options)
      See Also:
    • selectOptionByValue

      void selectOptionByValue(String value, String... otherValues)
      Select an option from dropdown list (by value)

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Parameters:
      value - "value" attribute of option
      otherValues - other values (if you need to select multiple options)
      See Also:
    • getSelectedOption

      @CheckReturnValue @Nonnull SelenideElement getSelectedOption() throws org.openqa.selenium.NoSuchElementException
      Find (first) selected option from this select field

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Returns:
      WebElement for selected <option> element
      Throws:
      org.openqa.selenium.NoSuchElementException
      See Also:
    • getSelectedOptions

      @CheckReturnValue @Nonnull ElementsCollection getSelectedOptions()
      Find all selected options from this select field

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Returns:
      ElementsCollection for selected <option> elements (empty list if no options are selected)
      See Also:
    • getOptions

      @CheckReturnValue @Nonnull ElementsCollection getOptions()
      Find all options from this select field

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Returns:
      ElementsCollection for all <option> elements
      Since:
      6.18.0
      See Also:
    • getSelectedOptionValue

      @CheckReturnValue @Nullable String getSelectedOptionValue()
      Get value of selected option in select field

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Returns:
      null if the selected option doesn't have "value" attribute (or the select doesn't have options at all)
      See Also:
    • getSelectedOptionText

      @CheckReturnValue @Nullable String getSelectedOptionText()
      Get text of selected option in select field

      Applicable for:

      
       <select>
         <option>...<option>
       </select>
       
      Returns:
      null if there is no selected options (or the select doesn't have options at all)
      Throws:
      IllegalArgumentException - if the element type is not <select/>
      See Also:
    • scrollTo

      @Nonnull @CanIgnoreReturnValue SelenideElement scrollTo()
      Ask browser to scroll to this element
      See Also:
    • scrollIntoView

      @Nonnull @CanIgnoreReturnValue SelenideElement scrollIntoView(boolean alignToTop)
      Ask browser to scroll the element on which it's called into the visible area of the browser window.

      If alignToTop boolean value is true - the top of the element will be aligned to the top.

      If alignToTop boolean value is false - the bottom of the element will be aligned to the bottom.

      Usage:

         element.scrollIntoView(true);
         // Corresponds to scrollIntoViewOptions: {block: "start", inline: "nearest"}
      
         element.scrollIntoView(false);
         // Corresponds to scrollIntoViewOptions: {block: "end", inline: "nearest"}
       
      Parameters:
      alignToTop - boolean value that indicate how element will be aligned to the visible area of the scrollable ancestor.
      See Also:
    • scrollIntoView

      @Nonnull @CanIgnoreReturnValue SelenideElement scrollIntoView(String scrollIntoViewOptions)
      Ask browser to scroll the element on which it's called into the visible area of the browser window.
       scrollIntoViewOptions:
        * behavior (optional) - Defines the transition animation
          1. auto (default)
          2. instant
          3. smooth
        * block (optional)
          1. start (default)
          2. center
          3. end
          4. nearest
        * inline
          1. start
          2. center
          3. end
          4. nearest (default)
       
      Usage:
         element.scrollIntoView("{block: \"end\"}");
         element.scrollIntoView("{behavior: \"instant\", block: \"end\", inline: \"nearest\"}");
       
      Parameters:
      scrollIntoViewOptions - is an object with the align properties: behavior, block and inline.
      See Also:
    • download

      @CheckReturnValue @Nonnull File download() throws FileNotDownloadedError
      Download file by clicking this element. Algorithm depends on @{@link Config#fileDownload() }.
      Throws:
      RuntimeException - if 50x status code was returned from server
      FileNotDownloadedError - if 40x status code was returned from server
      See Also:
    • download

      @CheckReturnValue @Nonnull File download(long timeout) throws FileNotDownloadedError
      Download file by clicking this element. Algorithm depends on @{@link Config#fileDownload() }.
      Parameters:
      timeout - download operations timeout.
      Throws:
      RuntimeException - if 50x status code was returned from server
      FileNotDownloadedError - if 40x status code was returned from server
      See Also:
    • download

      @CheckReturnValue @Nonnull File download(FileFilter fileFilter) throws FileNotDownloadedError
      Download file by clicking this element. Algorithm depends on @{@link Config#fileDownload() }.
      Parameters:
      fileFilter - Criteria for defining which file is expected ( FileFilters.withName(String), FileFilters.withNameMatching(String), FileFilters.withName(String) ).
      Throws:
      RuntimeException - if 50x status code was returned from server
      FileNotDownloadedError - if 40x status code was returned from server, or the downloaded file didn't match given filter.
      See Also:
    • download

      @CheckReturnValue @Nonnull File download(long timeout, FileFilter fileFilter) throws FileNotDownloadedError
      Download file by clicking this element. Algorithm depends on @{@link Config#fileDownload() }.
      Parameters:
      timeout - download operations timeout.
      fileFilter - Criteria for defining which file is expected ( FileFilters.withName(String), FileFilters.withNameMatching(String), FileFilters.withName(String) ).
      Throws:
      RuntimeException - if 50x status code was returned from server
      FileNotDownloadedError - if 40x status code was returned from server, or the downloaded file didn't match given filter.
      See Also:
    • download

      @CheckReturnValue @Nonnull File download(DownloadOptions options) throws FileNotDownloadedError
      Throws:
      FileNotDownloadedError
    • getSearchCriteria

      @CheckReturnValue @Nonnull String getSearchCriteria()
      Return criteria by which this element is located
      Returns:
      e.g. "#multirowTable.findBy(text 'INVALID-TEXT')/valid-selector"
      See Also:
    • toWebElement

      @CheckReturnValue @Nonnull org.openqa.selenium.WebElement toWebElement()
      Returns:
      the original Selenium WebElement wrapped by this object
      Throws:
      org.openqa.selenium.NoSuchElementException - if element does not exist (without waiting for the element)
      See Also:
    • getWrappedElement

      @CheckReturnValue @Nonnull org.openqa.selenium.WebElement getWrappedElement()
      Specified by:
      getWrappedElement in interface org.openqa.selenium.WrapsElement
      Returns:
      Underlying WebElement
      Throws:
      ElementNotFound - if element does not exist (after waiting for N seconds)
      See Also:
    • cached

      @CheckReturnValue @Nonnull SelenideElement cached()
      Cache this web element. The following calls to this object will not re-load this element from browser.
      Since:
      6.13.0
      See Also:
    • click

      SelenideElement click(ClickOptions clickOption)
      Click the element using ClickOptions:
        $("#username").click(ClickOptions.usingJavaScript())
       
      You can specify a relative offset from the center of the element inside ClickOptions: e.g.
        $("#username").click(usingJavaScript().offset(123, 222))
       
      Before clicking, waits until element gets interactable and enabled.
      Returns:
      this element
      See Also:
    • click

      void click()
      Click the element

      By default, it uses default Selenium method click.

      But it uses JavaScript method to click if com.codeborne.selenide.Configuration#clickViaJs is defined. It may be helpful for testing in Internet Explorer where native click doesn't always work correctly.

      Before clicking, waits until element gets interactable and enabled.

      Specified by:
      click in interface org.openqa.selenium.WebElement
      See Also:
    • contextClick

      @Nonnull @CanIgnoreReturnValue SelenideElement contextClick()
      Click with right mouse button on this element
      Returns:
      this element
      See Also:
    • doubleClick

      @Nonnull @CanIgnoreReturnValue SelenideElement doubleClick()
      Double-click the element

      Before clicking, waits until element gets interactable and enabled.
      Returns:
      this element
      See Also:
    • doubleClick

      @Nonnull @CanIgnoreReturnValue SelenideElement doubleClick(ClickOptions clickOption)
      Double-click the element using ClickOptions: $("#username").doubleClick(ClickOptions.usingJavaScript())

      You can specify a relative offset from the center of the element inside ClickOptions: e.g. $("#username").doubleClick(usingJavaScript().offset(123, 222))


      Before clicking, waits until element gets interactable and enabled.
      Returns:
      this element
      Since:
      6.13.0
      See Also:
    • hover

      @Nonnull @CanIgnoreReturnValue SelenideElement hover()
      Emulate "mouseOver" event. In other words, move mouse cursor over this element (without clicking it).
      Returns:
      this element
      See Also:
    • hover

      @Nonnull @CanIgnoreReturnValue SelenideElement hover(HoverOptions options)
      Emulate "mouseOver" event. In other words, move mouse cursor over this element (without clicking it).
      Parameters:
      options - optional hover parameters (offset etc)
      Returns:
      this element
      See Also:
    • dragAndDrop

      @Nonnull @CanIgnoreReturnValue SelenideElement dragAndDrop(DragAndDropOptions options)
      Drag and drop this element to the target
      Before dropping, waits until target element gets visible.
      Examples:
      using a CSS selector defining the target element:
      $("#element").dragAndDrop(to("#target"))
      using a SelenideElement defining the target element:
      $("#element").dragAndDrop(to($("#target")))

      define which way it will be executed:
      using JavaScript (by default):
      $("#element").dragAndDrop(to("#target").usingJS())
      using Actions :
      $("#element").dragAndDrop(to("#target").usingSeleniumActions())
      / *
      Parameters:
      options - drag and drop options to define target and which way it will be executed
      Returns:
      this element
      See Also:
    • execute

      <ReturnType> ReturnType execute(Command<ReturnType> command)
      Execute custom implemented command (this command will not receive any arguments through Command.execute(SelenideElement, WebElementSource, Object[]) when executed).
      Parameters:
      command - custom command
      Returns:
      whatever the command returns (incl. null)
      See Also:
    • execute

      <ReturnType> ReturnType execute(Command<ReturnType> command, Duration timeout)
      Execute custom implemented command with given timeout (this command will not receive any arguments through Command.execute(SelenideElement, WebElementSource, Object[]) when executed).
      Parameters:
      command - custom command
      timeout - given timeout
      Returns:
      whatever the command returns (incl. null)
      Since:
      5.24.0
      See Also:
    • isImage

      boolean isImage()
      Check if image is properly loaded.

      Applicable for: <img src="...">.

      Throws:
      IllegalArgumentException - if argument is not an "img" element
      Since:
      2.13
      See Also:
    • screenshot

      @CheckReturnValue @Nullable File screenshot()
      Take screenshot of this element
      Returns:
      file with screenshot (*.png) or null if Selenide failed to take a screenshot (due to some technical problem)
      See Also:
    • screenshotAsImage

      @CheckReturnValue @Nullable BufferedImage screenshotAsImage()
      Take screenshot of this element
      Returns:
      buffered image with screenshot
      See Also: