搞了一下午。。。

1.     Xpath往往以“//”开头,属性都是采用@表示,例如//div[@id='_navigation']/div

2.     Firefox有个插件叫做xpather,在页面上点击右键选中“show in xpather”,可以很快的给出对应的xpath。它给出的格式是这样的:/html/body/header/nav/ul[1]/li[5]/a/span

3.     根据是否使用属性,Xpath的语法格式有两种:

不使用属性:按照html的层次,如/html/body/header/nav/ul[1]/li[5]/a/span

使用属性:如//input[@class=’input’],直接定位。

Selenium还支持多个属性来定位,如//input[@class=’input’ and @type=’text’]。

4.     /div[2]表示第二个,/div[last()]表示最后一个,但是没有/div[first()]的语法,选择第一个用/div[1]

5.     选择一个以上的元素,使用|,如//div|//a,表示选择所有的div标签和a标签

6.     选择未知元素,使用“*”来选择满足条件的所有元素,如/*

7.     //input[@class=’input’]选择元素中的属性

//input[@class]选择有属性名为class的input标签

//input[@]选择有属性的input标签

点击页面上的File菜单, 用selenium怎么抓多层DIV里的路径:

代码大概形式   div嵌套了10层
<div id="isc_2M">
      ...(中间省略8个div)
         <div id="ISC_2O">
             <table>
               <tbody>
                    <tr>
<td>
                          <table>
                             <tbody>
                                <tr>
                                   <td>File
                                   </td>
                                </tr>
                             </tbody>
                          </table>
                       </td>
                    </tr>
               </tbody>
             <table>
         </div>
      ...
</div>

需要点击<td>File</td>这个

这个:
1 selenium.click("//td[text()='File']");
2 selenium.click("//td[contains(text(),‘File’)]");
3 selenium.click("//div/table/tbody/tr[1]/td[1]/table/tbody/tr[1]/td[1]");

4 selenium.click("//div[@id='ISC_2O']/table//table//tr[1]/td");

相关博客

http://blog.sina.com.cn/s/blog_505bf9af0101bdtq.html
http://www.51testing.com/html/91/79191-829759.html
http://www.cnblogs.com/qingchunjun/p/4208159.html(重要博客)

selenium By.xpath 用法的更多相关文章

  1. python爬虫---selenium库的用法

    python爬虫---selenium库的用法 selenium是一个自动化测试工具,支持Firefox,Chrome等众多浏览器 在爬虫中的应用主要是用来解决JS渲染的问题. 1.使用前需要安装这个 ...

  2. 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇

    在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select ...

  3. Python之Selenium的爬虫用法

    Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾经是 Selenium 的竞争对手).也就是说 Sel ...

  4. 模拟登陆百度以及Selenium 的基本用法

    模拟登陆百度,需要依赖于selenium 模块,调用浏览器,执行python命令 先来说一下这个selenium模块啦...... 本文参考内容来自 Selenium官网 SeleniumPython ...

  5. Selenium WebDriver高级用法

    Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...

  6. selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)

    跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我 ...

  7. selenium之xpath定位和input文本

    selenium之xpath定位和input文本 xpath简单定位: 打开浏览器的F12 在自己需要定位的元素的那里右键 选择copy->xpath selenium获取input下的文本: ...

  8. xPath 用法总结整理

    xPath 用法总结整理   一.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML ...

  9. selenium中Xpath和CSS Selector的使用方法

    一.selenium中Xpath的使用方法 1. 什么是xpath? Xpath是XML的路径语言,通俗一点讲就是通过元素的路径来查找这个标签元素 2. 练习Xpath的工具 火狐浏览器,下载插件Fi ...

随机推荐

  1. 单元测试:查找list[]中的最大值

     原始代码如下: int Largest(int list[], int length) { int i,max; for(i = 0; i < (length – 1); i ++ ) { i ...

  2. gdb调试正执行的程序

    参考,转载:http://biancheng.dnbcw.info/linux/391846.html

  3. InnoDB和MyISAM(转)

    两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持. 我作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,但是从我目前运维的数据库平台要达 ...

  4. 1074, "Column length too big for column 'err_solution' (max = 21845); use BLOB or TEXT instead"

    一个注意点,就是sqlalchemy 使用create_all()建表的时候,要在 create_all()所在页面import那些表的model sqlalchemy.exc.Operational ...

  5. python中的@

    一.函数修饰符 '@' 用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰, 出现在函数定义的前一行,不允许和函数定义在同一行 一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的 ...

  6. mac Zip 常用命令

    最通俗的用法 zip -q -r -e -m -o [yourName].zip someThing -q 表示不显示压缩进度状态 -r 表示子目录子文件全部压缩为zip  //这部比较重要,不然的话 ...

  7. 安卓手机上运行 PC-E500 程序

    目录 第1章安卓手机上运行 PC-E500 程序    1 1 PockEmul    1 2 下载    1 3 打包BASIC程序    2 4 配置PC-E500模拟器    5 5 载入e50 ...

  8. javascript中数组常用的方法

    在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...

  9. Object.create()兼容实现方法

    if (!Object.create) { Object.create = (function(){ function F(){} return function(o){ if (arguments. ...

  10. point\polyline\polygon的转化(转)

    首先你要明白Polyline是由path对象构成,Polygon是由ring对象构成,因此实现polyline向polygon的转换,思路如下:1.提取polyline中的所有path对象2.将pat ...