Xpath in selenium is close to must required. XPath is element locator and you need to provide xpath during selenium test script creation. You need to provide any element locator(like id, name, css path, xpath etc.) in target column of selenium IDE software testing tool's window to locate that specific element to perform some action on it and you are already aware about that. In previous post, we have learn about how to identify element id or name of software web application's element . If you have worked with selenium IDE software testing tool then you knows that sometimes elements does not contains id or name. Locating element by Xpath in selenium is the another way of locating element and you can use it as a alternative of id or name of element.

 
 
What Is XPath?
Xpath in XML document shows the direction of software web application's element location through nodes and attributes.

 
 

Let we try to understand how to identify Xpath of element with examples.

 
 
 
Above given image is taken from http://www.wikipedia.org/. It is firebug view of page. You can read THIS POST to know how to install firebug and firepath in firefox browser and THIS POST will describe you how to use it. Look into the image there are three fields 1. Input text box 2. select drop down and 3. input button. And bellow of those fields there is expansion of relative XML nodes through firebug. As you see in image, you can use "id=searchInput" or "name=search" to identify input text box to type something in to it as bellow given example.
New Test
Command Target Value
open http://www.wikipedia.org/  
type id=searchInput ID Example
 

or

New Test
Command Target Value
open http://www.wikipedia.org/  
type name=search Name Example

Xpath in selenium Tutorial

Now if you want to identify same element (input textbox) with xpath then you can use any of the bellow given syntax in to the target column with type command in above example.

 
Locating element using Xpath in selenium with Examples for input text box
 
1. Identifying Xpath using full path of XML
xpath=//body/div[3]/form/fieldset/input[2]  //// Here //body is the main root node, /div[3] describes the 3rd div child node of parent node body, /form describes the child node form of parent node div[3], /fieldset describes the child node fieldset of parent node form, /input[2] describes the 2nd input child node of parent node fieldset.
New Test
Command Target Value
open http://www.wikipedia.org/  
type xpath=
//body/div[3]/form/fieldset
/input[2]
Xpath
Example1

 
 
2. Writting Xpath using last()
xpath=//body/div[3]/form/fieldset/input[last()-2]  //// Here /input[last()-2] describes the 3rd upper input node(input[2]) from last input node.
xpath=//body/div[3]/form/fieldset/*[last()-3]   //// Here /*[last()-3] describes the 4th upper  node(input[2]) from last node.

New Test
Command Target Value
open http://www.wikipedia.org/  
type xpath=
//body/div[3]/form/fieldset
/input[last()-2]
Xpath
Example2

 
 
3. Xpath locator using @ and attribute
xpath=//body/div[3]/form/fieldset/input[@type='search']  //// Here /input[@type='search'] describes the input node having attribute type='search'.
New Test
Command Target Value
open http://www.wikipedia.org/  
type xpath=
//body/div[3]/form/fieldset
/input[@type='search']
Xpath Example3

 
 
4. Xpath expression using @ and attribute
xpath=//body/div[3]/form/fieldset/input[@accesskey='F']  //// Here /input[@accesskey='F'] describes the input node having attribute @accesskey='F'. Another way of same is as bellow.

New Test
Command Target Value
open http://www.wikipedia.org/  
type xpath=
//body/div[3]/form/fieldset
/input[@accesskey='F']
Xpath Example4

 

5. Xpath in selenium using @ and attribute
xpath=//input[@accesskey='F']  //// Here //input[@accesskey='F'] describes the input node having attribute @accesskey='F'. Try it by using it in above example.
 
6. Xpath example using @ and attribute
xpath=//input[@type='search']   //// Here /input[@type='search'] describes the input node having attribute type='search'. Try it by using it in above example.
 
7. XML Xpath using /descendant:: keyword
xpath=//div[@class='search-container']/descendant::input[@accesskey='F']   //// Here i have used descendant in between. In this case i have described only starting node div with attribute class='search-container' and final node input with accesskey='F' attribute. So not need to describe in between nodes. Try it by using it in above example.
 
8. Xpath query example using contains keyword
xpath=//input[contains(@id, "searchInput")]   ////Here i have used contains keyword to identify id attribute with text "searchInput". Try it by using it in above example.
 
9. xpath using and with attributes
xpath=//input[contains(@id, "searchInput") and contains(@accesskey,"F")]   ////In this example, It will look at two attributes in input node. Try it by using it in above example.
 
10. XML xpath value value using position()
xpath=//div[@class='search-container']/descendant::input[position()=2]   ////This xpath will select input node which is on number 2 position and it is for input text box as shown in image. Try it by using it in above example.

11. Using starts-with keyword
xpath=//input[starts-with(@type, "s")]    ////   In this example, It will find input node with attribute is 'type' and its value is starting with 's' (here it will get type = 'search').

12. Using OR (|) condition with xpath
xpath=//input[@accesskey='F'] | //input[@id='searchInput']
xpath=//input[@accesskey='F' or @id='searchInput']  //// In both these example, it will find input text box with accesskey='F' or @id='searchInput'. If any one found then it will locate it. Very useful when elements appears alternatively.

13. Using wildcard * with to finding element xpath
xpath=//*[@accesskey='F'] 

14. Finding nth child element of parent
xpath=//body/*[3]/form/fieldset/*[2]    ////This xpath is for search text box. Here, /*[3] describes the 3rd child element of body which is div[3]. Same way *[2] describes the 2nd child element of fieldset which is input[2]

All above examples are for input text box. Now let me write Xpath for drop down.
 
Xpath Examples for drop down
1. xpath=//body/div[3]/form/fieldset/select
2. xpath=//body/div[3]/form/fieldset/select[last()]
3. xpath=//body/div[3]/form/fieldset/select[@id='searchLanguage']
4. xpath=//body/div[3]/form/fieldset/select[@name='language']
5. xpath=//div[@class='search-container']/descendant::select[@name='language']
6. xpath=//select[contains(@id, "searchLanguage")]
7. xpath=//div[@class='search-container']/descendant::select[position()=1]
8. xpath=//body/div[3]/form/fieldset/select[count(*)>1]


New Test
Command Target Value
open http://www.wikipedia.org/  
select xpath=//div[@class='search-container']/descendant::select[position()=1] label=English

 
Other Xpath Example
1. Finding xpath in selenium for target link 'url'
//a[@href='//meta.wikimedia.org/wiki/List_of_Wikipedias']  ////This xpath example will find link with given URL (//meta.wikimedia.org/wiki/List_of_Wikipedias) on the page.

2. Finding xpath of element with no child
xpath=//img[count(*)=0]   ////This xpath is for wikipedia text logo which is display on top of the page. This xpath will find that image element which have not any child element. Here image node is last and it has not any child element.

xpath=//div[2]/descendant::img[count(*)=0]   //// This xpath is for wikipedia logo image which is display under logo text. 

Selenium Xpath Tutorials - Identifying xpath for element with examples to use in selenium的更多相关文章

  1. How to get the xpath by clicking an html element

    How to get the xpath by clicking an html element How to get the xpath by clicking an html element

  2. selenium之元素定位-xpath

    被测试网页的HTML代码 <html> <body> <div id="div1" style="text-align:center&quo ...

  3. selenium+python自动化之xpath定位

    在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. 什么是 ...

  4. selenium(9)- Xpath的详细使用

    什么是Xpath 官方:XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航 [XPath 使用路径表达式来选取 XML 文档中的节点或者节点集 ...

  5. selenium之坑(StaleElementReferenceException: Message: Element not found in the cache...)

    有时候循环点击一列链接,只能点到第一个,第二个就失败了 原因是第二个已经是新页面,当然找不到之前页面的元素.就算是后退回来的,页面也是不一样的 页面长的一样不一定是同一张页面,就像两个人长的一样不一定 ...

  6. selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

    抓取网页代码后,由于是在同一个li标签下,所以使用一次性抓取,所有的a标签,然后循环做不同的操作,但是抛出找不到元素异常. def office_page(_chrome: Chrome): sn = ...

  7. jQuery BlockUI Plugin Demo 4(Element Blocking Examples)

    Element Blocking Examples This page demonstrates how to block selected elements on the page rather t ...

  8. Selenium常见报错问题(1)- 先来认识下selenium常见异常类

    如果你在跑selenium脚本时,需要某些异常不知道怎么解决时,可以看看这一系列的文章,看看有没有你需要的答案 https://www.cnblogs.com/poloyy/category/1749 ...

  9. Python+Selenium 利用ID,XPath,tag name,link text,partial link text,class name,css,name定位元素

    使用firefox浏览器,查看页面元素,我们以“百度网页”为示例 一.ID定位元素    利用find_element_by_id()方法来定位网页元素对象 ①.定位百度首页,输入框的元素 ②.编写示 ...

随机推荐

  1. IOS比较常用的第三方组件及应用源代码(持续更新中)

    把平时看到或项目用到的一些插件进行整理,文章后面分享一些不错的实例,若你有其它的插件欢迎分享,不断的进行更新~ 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com ...

  2. RabbitMQ总结概念

    AMQP:一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计 http://www.diggerplus.org/archives/3110 AMQP ...

  3. 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)

    涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ...

  4. openssl用法详解

    OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls openssl可以 ...

  5. ssh 公钥登陆的问题

    我在A,B两台机器上面使用无密码登陆的方式 在A主机上面生成公钥 复制到了B主机的authorized_keys文件里面 发现还是要输入密码 问题1 权限问题  .ssh 目录必须是 700 auth ...

  6. 二.持续集成之--WEB后台

    1.系统管理-系统设置:把linux服务器加进去 2.General配置 3.源码管理: 4.构建触发器 5.构建环境 6.构建 7.构建后操作

  7. Android基础总结(九)

    多媒体概念(了解) 文字.图片.音频.视频 计算机图片大小的计算(掌握) 图片大小 = 图片的总像素 * 每个像素占用的大小 单色图:每个像素占用1/8个字节 16色图:每个像素占用1/2个字节 25 ...

  8. 分布式开放消息系统(RocketMQ)的原理与实践

    分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一 ...

  9. js cookie

    cookie:cookis:储存数据,当用户访问了某个网站的时候,我们就可以通过cookie来向访问者电脑上储存数据1)不同浏览器的存放cookie位置不一样,也是不能通用的2)cookie的存储是以 ...

  10. c#面试题汇总

    下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补缺用的,真正的把这些题搞懂了,才能“以不变应万变”.回答问题的时候能联系做过项目的例子是最好 ...