How to Locate Elements in Chrome and IE Browsers for Building Selenium Scripts – Selenium Tutorial #7

This is tutorial #7 in our Selenium Online Training Series. If you want to check all Selenium tutorials in this series please check this page.

In the previous tutorial, we tried to shed light on various types of locators in Selenium and their locating mechanisms to build test scripts. The tutorial was primary consist of the brief introduction of different locator types like ID, Classes, Xpaths, Link textsCSS Selectors etc. and their identification.

Proceeding ahead with our next tutorial, we would take the opportunity to introduce you with an extension of locating strategies. Thus, in the next tutorial, we would study the mechanism to locate web elements on Google Chrome and Internet Explorer.

Locate Elements in Chrome and IE Browsers

As we all are well aware of the fact that there is rapid growth in the internet user base, thus stakeholders and programmers are building web applications which are likely to work on most of the browsers. Thus, imagine a situation where your web application doesn’t support Firefox but works well for Chrome and Internet Explorer. Now how are you going to automate such an application using Selenium? Or to be specific how are you going to locate web elements in Chrome and Internet Explorer. Thus the answer lies ahead in this tutorial.

Locating Web Elements in Google Chrome

Let us begin with understanding the locating strategies in Google Chrome.

Like firebug in Firefox, Google Chrome has its own developer tool that can be used to identify and locate web elements on the web page. Unlike firebug, user is not required to download or install any separate plugin; the developer tool comes readily bundled with Google Chrome.

Follow the below steps to locate web elements using Chrome’s Developer tool:

Step #1: The primary step is to launch the Google Chrome’s Developer tool. Press F12 to launch the tool. The user would be able to see something like the below screen.

Selenium script 1

Take a note that “Element” tab is highlighted in the above screenshot. Thus, element tab is the one which displays all the HTML properties belonging to the current web page. Navigate to the “Element” tab if it is not opened by default on the launch.

You can also launch developer tool by right clicking anywhere within the web page and by selecting “Inspect element” which is very similar to that of firebug’s inspection.

Step #2: The next step is to locate the desired object within the web page. One way to do the same is to right click on the desired web element and inspect. The HTML property belonging to that web element would be highlighted in the developer tool. Another way is to hover through the HTML properties and the matching web element would be highlighted. Thus, in this way user can locate ids, class, links etc.

Selenium script 2

Creating an Xpath in Developer Tool

We have already discussed about Xpaths in the last tutorial. We also discussed about its creation strategy. Here we would base our discussion to check the validity of the created Xpath in Chrome’s Developer tool.

Step #1: For creating Xpath in Developer tool, open the console tab.

Step #2: Type the created Xpath and enclose it in $x(“//input[@id=’Email’]”)

Selenium script 3

------------

Step #3: Press the enter key to see all the matching HTML elements with the specified Xpath. In our case, there is only one matching HTML element. Hover on that HTML element and the corresponding web element would be highlighted on the web page.

Selenium script 4

In this way, all the Xpaths can be created and checked for their validity within the console.

Information related to CSS corresponding to the web element can be found within the Chrome’s Developer tool. Refer the screenshot below:

Selenium script 5

Locating Web Elements in Internet Explorer

Like Google Chrome, Internet Explorer also has its own Developer Tool that can be used to identify web elements based on their properties within the web page. User is not required to download or install any separate plugin, the developer tool comes readily bundled with Internet Explorer.

Follow the below steps to locate web elements using IE Developer tool:

Step #1: The primary step is to launch the IE Developer tool. Press F12 to launch the tool. The user would be able to see something like the below screen.

Selenium script 6

Take a note that “HTML” tab is highlighted in the above screenshot. Thus, HTML tab is the one which displays all the HTML properties belonging to the current web page. Expand the HTML tab to view the properties of all the web elements belonging to the current web page.

Step #2: The next step is to locate the desired object within the web page. One way to this is to select the HTML element and the matching web element would be highlighted. Thus, in this way user can locate ids, class, links etc. Check out in the below screenshot in which Email Textbox would be highlighted as soon as we select the corresponding HTML property.

Selenium script 7

Another way to locate the web element is to click on the “Find” button present in the top menu and by clicking on the desired web element within the web page. As a result, the corresponding HTML properties would be highlighted.

Selenium script 8

Thus, by using the developer tool, user can find ids, classes, tag names and can create Xpaths to locate web elements.

Like Chrome’s Developer tool, IE developer tool has a separate section that displays CSS related information. Checkout the below screenshot.

Selenium script 9

Conclusion

In this tutorial, we shed light on the basic element locating strategies using Developer’s tool for Google Chrome and Internet Explorer.

Next Tutorial #8: Proceeding ahead with our next tutorial, we would take the pleasure to introduce you with a more advanced tool named as WebDriver. WebDriver is one of the most compelling automation testing tools. So our next tutorial onwards, we would route and base our discussions around WebDriver and all its nitty gritty.

Recommended reading

20 comments ↓

#1 Subrata Paul

Thank you very much for the nice post. But as you said, we can use Selenium IDE only for firefox, can we use these identification techniques in selenium IDE for chrome or IE?

#2 shylaja

Once we have identified the Xpaths, how to convert it to a program or code which will make to work on FF? I am new to this selenium and couldnt relate it. Please help

#3 vidya

How to run selenium using javascript for running in appium? Please pr.ovide any helpful links or references

#4 Madhan

I’ve captured xpaths in Chrome how can i covert those xpaths to IE Is there any tool do that kind of converstion

#5 Hemant

Hello ,

When I am trying to use the above mentioned xpath from you :$x(“//input[@id=’Email’]”) in the console and hitting the enter button.

I am getting below exception at chrome :

Uncaught SyntaxError: Unexpected token ILLEGAL
at Object.InjectedScript._evaluateOn (:895:140)
at Object.InjectedScript._evaluateAndWrap (:828:34)
at Object.InjectedScript.evaluate (:694:21)InjectedScript._evaluateOn @ VM1307:895InjectedScript._evaluateAndWrap @ VM1307:828InjectedScript.evaluate @ VM1307:694

I am using chrome version :Version 43.0.2357.81 m

Kindly suggest in this

Thanks,
Hemant

#6 Sekar

Hello,
Can you help? I want to write Xpath in IE & Chrome.
For same example “Email Text Box”,
Xpath in Chrome is = $x(“//input[@id=’Email’]”)
What is Xpath in IE11?

#7 Amol kale

Can you help? how to get xpaths of element through java program

#8 surmo

When I am trying to use the above mentioned xpath from you :$x(“//input[@id=’Email’]”) in the console and hitting the enter button.

I am getting below exception at chrome :

Uncaught SyntaxError: Unexpected token ILLEGAL
at Object.InjectedScript._evaluateOn (:895:140)
at Object.InjectedScript._evaluateAndWrap (:828:34)
at Object.InjectedScript.evaluate (:694:21)InjectedScript._evaluateOn @ VM1307:895InjectedScript._evaluateAndWrap @ VM1307:828InjectedScript.evaluate @ VM1307:694

#9 Gaurav Khurana

@Surmo/Hemanth

You should not use ‘:’ in front. the correct is $x(“input[@id=’Email’]”) and you are using :$X
so ‘:’ before $ shoudl be avoided

@amol/Shylaja
It will be covered in Webdriver tutorials which are next

@subrata
Selenium IDE was designed only for firefox so it’s not available in IE and Chrome.

Could you please share 1 exmaple for IE. With IE11 I was not able to find the ‘find’ option and how to use it.

#10 Aswin

Hi Gaurav khurana

I have used the above syntax $x(“input[@id=’Email’]”)

I am getting like this

Uncaught SyntaxError: Unexpected token ILLEGAL(…)InjectedScript._evaluateOn @ VM809:875InjectedScript._evaluateAndWrap @ VM809:808InjectedScript.evaluate

#11 Suni

Hi, Suppose if i want to write the scripts for both firefox and chrome , can i use the same scripts for all browsers? because xpath syntax are different for both firefox and chrome.If not what would be the solution to avoid redundant code for whole application.
What are the best locators for more faster?

#12 rkul

sorry! you did not mention how to enter xpath in IE browser. I tried using same as you mentioned for chrome, but that did not work on IE. Could you please reply back letting me know the xpath for IE

#13 Priyanka

Hi,

Thanks for such nice tutorial.

Is it really required to inspect element in each different browser separately(google chrome, i.e. , firefox) to test Web page in different browsers because e.g I can see the id is same i.e. email (for gmail.com) irrespective of any web browser I open so would it be sufficient if I inspect and locate element only in Firefox and use it for other browsers as well.

#14 Paul Laguna

@Aswin @Surmo @Hemant

Don’t copy and paste $x(“input[@id=’Email’]”)

Type it out. That happened to me before and since I typed it out, it works now.

#15 Jasmine

I am also unable to follow the same on IE , i reach there at HTML but unlilke firefox on IE unable to find xpath

#16 Jim

The problem with the Xpath line for Chrome $x(“input[@id=’Email’]”) is that the quotes have been converted to directional ones.

Try this:
$x(“input[@id=’Email’]”)

#17 Jim

Well, crud. The commenting engine rewrote them into directional ones, too. Use straight single and double quotes.

#18 Jay

I am struggling get element address where have below constraints on web page:
1. It supports only on Google chrome.
2. Right click is disable on the page.
3. Need to capture sub menu of hover menu.

Please help me anyone to come out from this.

#19 Akanksha

i didn’t get the answer for IE , the one you have mentioned is not for IE its for chrome

#20 Pavithra

HI,

I am try the below xpath in the console and getting error,

$x(“//input[contains(@name,’FirstName’)]/following:*”)

VM1342:1 Uncaught DOMException: Failed to execute ‘$x’ on ‘CommandLineAPI’: The string ‘//input[contains(@name,’FirstName’)]/following:*’ contains unresolvable namespaces.
at :1:1

Leave a Comment