FindElement Method (Page Objects)

Applies to TestComplete 15.69, last modified on November 13, 2024

Description

Use the FindElement method to find a web element that matches a search condition. You can specify the condition either by using the XPath syntax (see www.w3schools.com/xml/xpath_syntax) or the CSS selector syntax (see www.w3.org/TR/selectors).

The method returns the first found element that matches the condition.

Requirements

  • TestComplete 14.71.

    Note: If you have another version of TestComplete, please check the requirements for your version.

  • An active license for the TestComplete Web Module.

  • The Web Testing plugin must be enabled in TestComplete (it is installed and enabled by default).

Declaration

TestObj.FindElement(Selector)

TestObj A variable, parameter or expression that specifies a reference to one of the objects listed in the Applies To section
Selector [in]    Required    Object    
Result An object or a null object

Applies To

The method is applied to the following object:

View Mode

To view this method in the Object Browser panel and in other panels and dialogs, activate the Advanced view mode.

Parameters

The method has the following parameter:

Selector

Specifies the search condition. Can be either an XPath expression or a CSS selector.

XPath
  • The search expression must comply with the XPath rules. For more information on them, see XPath documentation. For instance, you can find XPath Reference in the MSDN Library.

  • The search expression must contain the names of HTML elements and attributes. Do not use Name Mapping aliases.

  • The element and attributes names in the search expression are case-insensitive. That is, you can specify them either in the upper case, or in the lower case.

    However, the element and attribute values, which you specify in the search expression, are case-sensitive. For instance, image1.PNG, IMAGE1.PNG and Image1.png are different values for XPath. The search expression must specify values in the same case, in which they are specified in the source code of the page.

  • In search expressions, you can use XPath 1.0 functions like contains, substring, starts-with and others.

    XPath 2.0 functions (like lower-case(), matches() and others), Microsoft extensions and other third-party extensions to XPath functions are not supported.

The table below contains some examples of XPath expressions:

Expression Description
//IMG[contains(@src, 'plusBtn.gif')] All IMG elements whose src attribute contains the plusBtn.gif substring.
//A[starts-with(@href, 'javascript:')] All A elements whose href attribute starts with the javascript: prefix.
//DIV[@class='CodeExample']/P[1] All P elements that are located at the first position within DIV elements whose class attribute is set to CodeExample.
//*[@align='center'] All web page elements that have the align attribute set to center.
//UL/* A collection of direct children of any UL element.
//UL[@id='ProductList']/LI[last()] The last LI element within the UL element that has the id attribute set to ProductList.
//DIV//A All A elements that are descendants of any DIV element.
CSS selector

A search expression containing one or more CSS selectors. For more information on them, see CSS selector syntax documentation. For example, you can find it at www.w3.org/TR/selectors.

The table below demonstrates some examples of CSS selectors:

Selector Description
h3 All H3 elements.
#infobox An element with the ID "infobox".
.nav All elements with the class "nav".
div,p All DIV elements and all P elements.
div p All P elements inside DIV elements.
img.thmb All IMG elements of the "thmb" class.
a:link All unvisited links.
a[target=blank] All links that open in a new window.
a[src^="https"] All links whose src attribute value begins with "https".
li:first-of-type All LI elements that are the first item in their parent elements.
p:nth-child(2) All P elements that are located at the second position within their parent elements.

Result Value

The method returns an object that matches the specified search criteria.

If no matching object was found, the method returns an empty value (null in JavaScript, JScript, C#Script, and C++Script, None in Python, Nothing in VBScript, nil in DelphiScript) and posts an error message to the test log. Depending on how your project is configured to handle errors, TestComplete may stop the entire test run when the error is posted. To avoid errors, you can use the WaitElement method instead.

See Also

WaitElement Method (Page Objects)
FindElements Method (Page Objects)
Page Object
About Cross-Platform Web Tests

Highlight search results