Class Condition
- Direct Known Subclasses:
And
,Attribute
,AttributeWithValue
,Checked
,CssClass
,CssValue
,CustomMatch
,Disabled
,Enabled
,Exist
,ExplainedCondition
,Focused
,Hidden
,IsImageLoaded
,MatchAttributeWithValue
,NamedCondition
,Not
,Or
,PartialValue
,PseudoElementPropertyWithValue
,Selected
,TagName
,TextCondition
,Value
,Visible
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Condition
Synonym forvisible
- may be used for better readabilitystatic final Condition
Deprecated.static final Condition
Checks that checkbox is checkedstatic final Condition
Checks that element is disabledstatic final Condition
Synonym forhidden
- may be used for better readability:static final Condition
static final Condition
1) For input element, check that value is missing or emptystatic final Condition
Checks that element is not disabledstatic final Condition
Check if element exist.static final Condition
Check if browser focus is currently in given element.static final Condition
Checks that element is not visible or does not exist.static final Condition
Check if image is loaded.static final Condition
Check if element is interactable: either is visible, or has css property "opacity: 0"static final Condition
Check if element has "readonly" attribute (with any value)static final Condition
Checks that element is selected (inputs like drop-downs etc.)static final Condition
Checks if element is visible -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionactualValue
(Driver driver, org.openqa.selenium.WebElement element) Deprecated.not needed anymore since the actual value is returned by methodcheck(Driver, WebElement)
static Condition
Check if element matches ALL given conditions.boolean
Deprecated.replace bycheck(Driver, WebElement)
static Condition
Check if element has given attribute (with any value)static Condition
Sample:$("#mydiv").shouldHave(attribute("fileId", "12345"));
static Condition
attributeMatching
(String attributeName, String attributeRegex) Assert that given element's attribute matches given regular expressionstatic Condition
Used to form human-readable condition expression Example element.should(be(visible),have(text("abc"))Should be used for explaining the reason of conditionCheck if given element matches this conditionstatic Condition
Asserts that element has the given class.static Condition
Checks if css property (style) applies for the element.static Condition
exactOwnText
(String text) Assert that element has given text (without checking child elements).static Condition
Assert that element has given text (without checking child elements).static Condition
Assert that element has exactly (case-insensitive) given textstatic Condition
exactTextCaseSensitive
(String text) Assert that element has exactly the given textstatic Condition
exactValue
(String value) Sample:$("#input").shouldHave(exactValue("John"));
getName()
static Condition
Used to form human-readable condition expression Example element.should(be(visible),have(text("abc"))static Condition
Sample:$("#mydiv").shouldHave(href("/one/two/three.pdf"));
static Condition
Sample:$("#input").shouldHave(id("myForm"))
static Condition
Assert that element contains given inner text.static Condition
Checks if element matches the given predicate.static Condition
Assert that given element's text matches given regular expressionboolean
static Condition
Asserts the name attribute of the element to be exact stringnegate()
static Condition
Negate given condition.static Condition
Check if element matches ANY of given conditions.static Condition
Assert that element contains given text (without checking child elements).static Condition
ownTextCaseSensitive
(String text) Assert that element contains given text (without checking child elements).static Condition
partialText
(String expectedText) Assert that given element's text CONTAINS given textstatic Condition
partialTextCaseSensitive
(String expectedText) Assert that given element's text CONTAINS given text (case-sensitive)static Condition
partialValue
(String expectedValue) Assert that element contains given "value" attribute as substring NB! Ignores difference in non-visible characters like spaces, non-breakable spaces, tabs, newlines etc.static Condition
Check that element has given the "content" property of the pseudo-elementstatic Condition
Check that element has given the property value of the pseudo-elementstatic Condition
selectedText
(String expectedText) Checks on a element that exactly given text is selected (=marked with mouse/keyboard)static Condition
Asserts that element has the given tag name.static Condition
Assert that element contains given text as a substring.static Condition
textCaseSensitive
(String text) Assert that element contains given text as a case-sensitive substringtoString()
static Condition
Asserts the type attribute of the element to be exact stringstatic Condition
Assert that element contains given "value" attribute as substring NB! Ignores difference in non-visible characters like spaces, non-breakable spaces, tabs, newlines etc.
-
Field Details
-
visible
Checks if element is visibleSample:
$("input").shouldBe(visible);
-
exist
Check if element exist. It can be visible or hidden.Sample:
$("input").should(exist);
-
appear
Synonym forvisible
- may be used for better readabilitySample:
$("#logoutLink").should(appear);
-
appears
Synonym forvisible
- may be used for better readability$("#logoutLink").should(appear, 10000);
-
disappear
Synonym forhidden
- may be used for better readability:$("#loginLink").should(disappear);
-
interactable
Check if element is interactable:- either is visible, or
- has css property "opacity: 0"
Elements which are transparent (opacity:0) are considered to be invisible, but interactable. User can click, doubleClick etc., and enter text etc. to transparent elements (for all major browsers).
Example:
$("input[type=file]").shouldBe(interactable);
- Since:
- 6.5.0
-
readonly
Check if element has "readonly" attribute (with any value)
Sample:
$("input").shouldBe(readonly);
-
editable
Check if element is "editable":- is
interactable
, and - is
enabled
, and - is not
readonly
Sample:
$("input").shouldBe(editable);
- Since:
- 6.5.0
- is
-
empty
1) For input element, check that value is missing or emptySample:
$("#input").shouldBe(empty)
2) For other elements, check that text is empty
Sample:
$("h2").shouldBe(empty)
-
image
Check if image is loaded. -
focused
Check if browser focus is currently in given element. -
enabled
Checks that element is not disabled- See Also:
-
WebElement.isEnabled()
-
disabled
Checks that element is disabled- See Also:
-
WebElement.isEnabled()
-
selected
Checks that element is selected (inputs like drop-downs etc.)- See Also:
-
WebElement.isSelected()
-
checked
Checks that checkbox is checked- See Also:
-
WebElement.isSelected()
-
-
Constructor Details
-
Condition
-
Condition
-
-
Method Details
-
attribute
Check if element has given attribute (with any value)Sample:
$("#mydiv").shouldHave(attribute("fileId"));
- Parameters:
attributeName
- name of attribute, not null- Returns:
- true iff attribute exists
-
attribute
@CheckReturnValue @Nonnull public static Condition attribute(String attributeName, String expectedAttributeValue) Sample:
$("#mydiv").shouldHave(attribute("fileId", "12345"));
- Parameters:
attributeName
- name of attributeexpectedAttributeValue
- expected value of attribute
-
attributeMatching
@CheckReturnValue @Nonnull public static Condition attributeMatching(String attributeName, String attributeRegex) Assert that given element's attribute matches given regular expressionSample:
$("h1").shouldHave(attributeMatching("fileId", ".*12345.*"))
- Parameters:
attributeName
- name of attributeattributeRegex
- regex to match attribute value
-
href
Sample:
$("#mydiv").shouldHave(href("/one/two/three.pdf"));
It looks similar to `$.shouldHave(attribute("href", href))`, but it overcomes the fact that Selenium returns full url (even if "href" attribute in html contains relative url).
- Parameters:
href
- expected value of "href" attribute
-
value
Assert that element contains given "value" attribute as substring NB! Ignores difference in non-visible characters like spaces, non-breakable spaces, tabs, newlines etc.Sample:
$("input").shouldHave(value("12345 666 77"));
- Parameters:
expectedValue
- expected value of "value" attribute
-
partialValue
Assert that element contains given "value" attribute as substring NB! Ignores difference in non-visible characters like spaces, non-breakable spaces, tabs, newlines etc.Sample:
$("input").shouldHave(partialValue("12345 666 77"));
- Parameters:
expectedValue
- expected value of "value" attribute- Since:
- 6.7.3
-
pseudo
@CheckReturnValue @Nonnull public static Condition pseudo(String pseudoElementName, String propertyName, String expectedValue) Check that element has given the property value of the pseudo-elementSample:
$("input").shouldHave(pseudo(":first-letter", "color", "#ff0000"));
- Parameters:
pseudoElementName
- pseudo-element name of the element, ":before", ":after", ":first-letter", ":first-line", ":selection"propertyName
- property name of the pseudo-elementexpectedValue
- expected value of the property
-
pseudo
@CheckReturnValue @Nonnull public static Condition pseudo(String pseudoElementName, String expectedValue) Check that element has given the "content" property of the pseudo-elementSample:
$("input").shouldHave(pseudo(":before", "Hello"));
- Parameters:
pseudoElementName
- pseudo-element name of the element, ":before", ":after"expectedValue
- expected content of the pseudo-element
-
exactValue
Sample:
$("#input").shouldHave(exactValue("John"));
- Parameters:
value
- expected value of input field
-
name
Asserts the name attribute of the element to be exact stringSample:
$("#input").shouldHave(name("username"))
- Parameters:
name
- expected name of input field
-
type
Asserts the type attribute of the element to be exact stringSample:
$("#input").shouldHave(type("checkbox"))
- Parameters:
type
- expected type of input field
-
id
Sample:
$("#input").shouldHave(id("myForm"))
- Parameters:
id
- expected id of input field
-
matchText
Assert that given element's text matches given regular expressionSample:
$("h1").should(matchText("Hello\s*John"))
- Parameters:
regex
- e.g. Kicked.*Chuck Norris - in this case ".*" can contain any characters including spaces, tabs, CR etc.
-
partialText
Assert that given element's text CONTAINS given textSample:
$("h1").shouldHave(partialText("ello Joh"))
- Since:
- 6.7.0
-
partialTextCaseSensitive
Assert that given element's text CONTAINS given text (case-sensitive)Sample:
$("h1").should(partialTextCaseSensitive("ELLO jOH"))
- Since:
- 6.7.0
-
text
Assert that element contains given text as a substring.
Sample:
$("h1").shouldHave(text("Hello\s*John"))
NB! Case insensitive
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element. NB! Empty string is not allowed (because any element does contain an empty text).- Throws:
IllegalArgumentException
- if given text is null or empty
-
selectedText
Checks on a element that exactly given text is selected (=marked with mouse/keyboard)Sample:
$("input").shouldHave(selectedText("Text"))
NB! Case sensitive
- Parameters:
expectedText
- expected selected text of the element
-
textCaseSensitive
Assert that element contains given text as a case-sensitive substringSample:
$("h1").shouldHave(textCaseSensitive("Hello\s*John"))
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element
-
exactText
Assert that element has exactly (case-insensitive) given textSample:
$("h1").shouldHave(exactText("Hello"))
Case insensitive
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element
-
innerText
Assert that element contains given inner text.Sample:
It can be used to check the text of a hidden element.$("h1").shouldHave(innerText("Hello"))
Case insensitive
NB! Ignores multiple whitespaces between words
-
ownText
Assert that element contains given text (without checking child elements).Sample:
$("h1").shouldHave(ownText("Hello"))
Case insensitive
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element without its children
-
ownTextCaseSensitive
Assert that element contains given text (without checking child elements).Sample:
$("h1").shouldHave(ownTextCaseSensitive("Hello"))
Case sensitive
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element without its children- Since:
- 6.6.0
-
exactOwnText
Assert that element has given text (without checking child elements).Sample:
$("h1").shouldHave(ownText("Hello"))
Case insensitive
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element without its children
-
exactOwnTextCaseSensitive
Assert that element has given text (without checking child elements).Sample:
$("h1").shouldHave(exactOwnTextCaseSensitive("Hello"))
Case sensitive
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element without its children- Since:
- 6.6.0
-
exactTextCaseSensitive
Assert that element has exactly the given textSample:
$("h1").shouldHave(exactTextCaseSensitive("Hello"))
NB! Ignores multiple whitespaces between words
- Parameters:
text
- expected text of HTML element
-
tagName
Asserts that element has the given tag name.Sample:
$(".btn-primary").shouldHave(tagName("button"));
- Since:
- 6.7.3
-
cssClass
Asserts that element has the given class. Element may have other classes as well.Sample:
$("input").shouldHave(cssClass("active"));
-
cssValue
@CheckReturnValue @Nonnull public static Condition cssValue(String propertyName, @Nullable String expectedValue) Checks if css property (style) applies for the element. Both explicit and computed properties are supported.Note that if css property is missing
WebElement.getCssValue(java.lang.String)
return empty string. In this case you should assert against empty string.Sample:
<input style="font-size: 12">
$("input").shouldHave(cssValue("font-size", "12"));
$("input").shouldHave(cssValue("display", "block"));
- Parameters:
propertyName
- the css property (style) name of the elementexpectedValue
- expected value of css property- See Also:
-
WebElement.getCssValue(java.lang.String)
-
match
@CheckReturnValue @Nonnull public static Condition match(String description, Predicate<org.openqa.selenium.WebElement> predicate) Checks if element matches the given predicate.Sample:
$("input").should(match("empty value attribute", el -> el.getAttribute("value").isEmpty()));
- Parameters:
description
- the description of the predicatepredicate
- thePredicate
to match
-
not
Negate given condition.Used for methods like $.shouldNot(exist), $.shouldNotBe(visible)
Typically, you don't need to use it.
-
and
@CheckReturnValue @Nonnull public static Condition and(String name, Condition condition1, Condition condition2, Condition... conditions) Check if element matches ALL given conditions. The method signature makes you to pass at least 2 conditions, otherwise it would be nonsense.- Parameters:
name
- Name of this condition, like "empty" (meaning e.g. empty text AND empty value).condition1
- first condition to matchcondition2
- second condition to matchconditions
- Other conditions to match- Returns:
- logical AND for given conditions.
-
or
@CheckReturnValue @Nonnull public static Condition or(String name, Condition condition1, Condition condition2, Condition... conditions) Check if element matches ANY of given conditions. The method signature makes you to pass at least 2 conditions, otherwise it would be nonsense.- Parameters:
name
- Name of this condition, like "error" (meaning e.g. "error" OR "failed").condition1
- first condition to matchcondition2
- second condition to matchconditions
- Other conditions to match- Returns:
- logical OR for given conditions.
-
be
Used to form human-readable condition expression Example element.should(be(visible),have(text("abc"))- Parameters:
delegate
- next condition to wrap- Returns:
- Condition
-
have
Used to form human-readable condition expression Example element.should(be(visible),have(text("abc"))- Parameters:
delegate
- next condition to wrap- Returns:
- Condition
-
apply
Deprecated.replace bycheck(Driver, WebElement)
Check if given element matches this condition.- Parameters:
element
- given WebElement- Returns:
- true if element matches condition
-
check
@Nonnull @CheckReturnValue public CheckResult check(Driver driver, org.openqa.selenium.WebElement element) Check if given element matches this condition- Parameters:
driver
- selenide driverelement
- given WebElement- Returns:
CheckResult.Verdict.ACCEPT
if element matches condition, orCheckResult.Verdict.REJECT
if element doesn't match (and we should keep trying until timeout).- Since:
- 6.0.0
-
actualValue
@Nullable @Deprecated public String actualValue(Driver driver, org.openqa.selenium.WebElement element) Deprecated.not needed anymore since the actual value is returned by methodcheck(Driver, WebElement)
If element didn't match the condition, returns the actual value of element. Used in error reporting. Optional. Makes sense only if you need to add some additional important info to error message.- Parameters:
driver
- given driverelement
- given WebElement- Returns:
- any string that needs to be appended to error message.
-
negate
-
because
Should be used for explaining the reason of condition -
toString
-
getName
-
missingElementSatisfiesCondition
@CheckReturnValue public boolean missingElementSatisfiesCondition()
-
visible
orappear