在 Selenium 中使用 XPath(转)

上一篇 / 下一篇  2013-09-25 11:45:09 / 个人分类:Selenium2.0

Selenium 中使用 XPath

资源中的大多数教程都是重点都是在如何把 XPath 作为一个通用的 XML 处理工具来使用的 - 幸运的是在 [X]HTML 上使用 XPath 大大限制了它的范围。

我如何定位一个元素?

  1. 使用上面提到的某个 Firefox 扩展并且在元素上点击右键,把结果粘贴到你的脚本的第二个参数。缺点: 这样得到的路径比较脆弱 (一个完整的路径就像这样/html/body/div[1]/div[5]/div/table/tbody/tr/td/p/a[3]如果任何一个元素被加到了第三个 a 之前那么这个路径就被破坏了,并且不同的浏览器也可能会把类似 tbody 这样的元素插入到不同的位置)
  2. 尝试在你的代码中包含 id
  3. 如果你不能得到 id,尝试选择一个对于页面来说唯一的 class ('contentheading' etc) 并且从这里开始://div[@class='contentheading']/span[1]

Gotchas

  1. 设置 selectors [1] [2] 等从 1 开始计数,而不是 0
  2. 如果你在一个元素里面使用多个 class 譬如<div class="foo bar">) 你可以使用//div[contains(@class, "foo")]来寻找匹配的元素。
  3. 不要忘了 id 不能有数字开头。
  4. 不要忘了<a>元素有 name 而不是 id。

为什么这些 @#$%! XPath 在 IE6 下不能工作?!Why wont this @#$%! XPath work in IE6?!

  1. 某些原因导致 XPath 表达式id('foo')/span在 IE6 下无法工作。尝试使用//div[@id='foo']/span替代它。
  2. //div[5][@class="foo"](在 document 中选择 class 为 foo 的第五个 div) 在 IE6 下不工作。尝试使用/descendant::div[@class="foo"][5]替代它。

TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 4173
  • 日志数: 7
  • 书签数: 1
  • 建立时间: 2009-10-12
  • 更新时间: 2014-05-09

RSS订阅

Open Toolbar