In certain circumstances, jQuery selectors serve as an alternative to the WalkMe algorithm (Capture Mode) to identify elements with enhanced precision, optimized performance, with the ability to grab specific values.
A jQuery selector can quickly find an element in the current window based on the criteria provided. The most common jQuery selectors in the WalkMe Editor are used to:
- Create Onboarding Goals – Create Onboarding goals based on an On Screen Element. Onboarding Goals are constantly checked and using jQuery will reduce strain on your site.
- Selected Element Launchers – Add the jQuery Selector into the Selected Element tab of a Launcher to optimize performance.
- Grab Values – Grab a value from a user variable or a text on the screen to be incorporated into a dynamic announcement or use it in a rule.
- Check Page Conditions – Direct WalkMe to analyze the attributes of an element on the screen to use as a Rule Type in the Rule Engine.
- Capture Difficult or Changing Elements – Select an element that may change its attributes such as its position on the website or the text it contains. Alternatively, use Precision to fine-tune the WalkMe algorithm.
How It Works
Find the element in the HTML by right-clicking on the element and selecting Inspect Element. The element will be highlighted on the screen and in the developer panel. Identify the element’s unique characteristics (such as location, class, id, or style) in order to build your jQuery selector. Elements can be identified by their location or attributes (class, ID and style).
Step 1: Build The jQuery Selector
The basic syntax for using jQuery elements in WalkMe is: Element – Selector – Value. After identifying the element, build a jQuery Selector that will look at specifically what you are interested in. Here are some examples of jQuery Selectors:
- ul element with id create-account: ul#create-account.
- ul elements with class nav: ul.nav.
- ul elements with class nav and class fl type: ul.nav.fl.
See below for a list of useful jQuery Selectors.
Step 2: Test Your Selector In The Console
- Type wmjQuery(“”) in the command line in the developer panel with your jQuery selector between the “” and hit Enter.
- Please note that you’ll only be able to use wmjQuery in a browser with the Editor Extension enabled.
- If your query returns the desired value, your selector is working! To see the selected elements on the screen, click the “More…” link.
- Hover over the returned objects to see the highlighted element.
Step 3: Use jQuery Selectors In WalkMe
Depending on how you would like to use the jQuery element, jQuery can be used in WalkMe in the following locations:
- Use the jQuery element to identify an element for a step or Launcher using the Selected Element tab of the Options Menu.
- Use the jQuery element to trigger the next step in a Walk-Thru when clicked or hovered in the Additional Step Triggers Menu.
- Use the jQuery element to grab a value on screen to use as Dynamic Text in the Rich Text Editor in a step balloon or ShoutOut.
- Use the jQuery element to build a Goal in the Goal tab.
- Use the jQuery Selector in the Rule Engine as a Rule Type (similar to jQuery is used similarly to On Screen Element Rule Type) Available Operators are:
- True – Means that at least one element was found.
- False – Means that no elements were found.
- Visible – Means that the element is visible.
- Text Is / Is Not – Means text is equal to text input. When the selector returns more than one element, all elements’ text are combined as one element.
- Greater Than / Less Than – Means value is above or below a whole number.
- Like / Not Like – Means a complicated text syntax.
- Length Is / Is Not / Greater Than / Less Than – Means equal to, above or below a whole number. Used when to query how many elements the query returns. Discover exact query length in the console: wmjQuery(“element.value”).length
WalkMe’s Editor only supports selectors written in jQuery syntax up to that used in jQuery 1.8.3. However, you may use any version of jQuery for other purposes on your website without fear of a conflict with WalkMe’s version of jQuery (wmjQuery). Please contact email@example.com with any additional questions.
Useful jQuery Selectors
|element||Query an element|
|element[attribute]||Query an attribute of an element|
|element[attribute][attribute]||Query multiple attributes of an element|
|element[attribute=”attribute value”]||Query an attribute of an element and its value|
|element[attribute^=”text”]||Query text at the beginning of an attribute|
|element[attribute*=”text”]||Query text contained in an attribute|
|element[attribute!=”text”]||Query text excluded from an attribute|
|element child-element||Query the child of an element (space indicates that the first element is the parent of the second)|
|element:checked||Query the status of a checkbox (checked or unchecked)|
|[element=”]:mt_visible||Query if an element is visible|
|element:contains(Text)||Query element contains text|
|element:eq(#)||Query specific result in order (count starts from 0)|
Testing Your jQuery Selectors
When choosing a jQuery selector, it is wise to compare a few to ensure you are picking the one with the least performance impact on your website/application. To do so, please follow these steps:
- Open your web browser’s dev tools.
- Navigate to the dev tools’ Console tab.
- Type “var time1 = window.performance.now(); wmjQuery(‘<your jQuery selector>‘); var time2 = window.performance.now(); console.log(time2 – time1);” into the Console and click Enter on your keyboard.
- Run this command several times in the Console to see the approximate average of the time it takes.
- Run this same command with some alternative jQuery selectors and choose the one that takes the least time to run.
Try it Out
Try building Goals for your Walk-Thrus based on jQuery elements.
- Identify an element that will represent the completion of a process (Main Goal) or stage in a process (Milestone Goal).
- Open the Console and identify the element Build a Goal based on the jQuery element.
- Preview your work and check for Goal completion in the Flow Tracker.