`

JavaScript 定位XPath

 
阅读更多
由于使用table ,一个界面的元素的xpath 可能会不断的变化,因而一个界面元素的xpath可能会有多个,于是使用 数组储存可能的xpath,使用如下程序结构
以后页面变化,只需要填数组就好

var orderid_xp=['html/body/table[4]/tbody/tr/td/table/tbody/tr[3]/td',
                  'html/body/table[5]/tbody/tr/td/table/tbody/tr[3]/td'];
 
var orderid=getCompText(orderid_xp);


function getCompText(xpthArr){
  var result="";
  if(typeof xpthArr=='string'){  result=getTextByXpath(xpthArr); return result;}
  if(typeof xpthArr=='object'){ 
    for(var i=0;i<xpthArr.length;i++){
      var tmp=getTextByXpath(xpthArr[i]);
      if(tmp.trim()==''){ continue;}
      else{
          result=tmp;
          return result;
        }
      }
  }
}




JavaScript 定位取得 xpath 的文本值的函数 已经 trim 函数


function getTextByXpath(xpth){
  var result="";
   
  var iterator = document.evaluate(xpth, document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );

try {
  var thisNode = iterator.iterateNext();
  
  while (thisNode) {
    if(typeof thisNode.textContent !='undefined') {result=result+thisNode.textContent ;}
    thisNode = iterator.iterateNext();
  }	
}
catch (e) {
  dump( 'Error: Document tree modified during iteration ' + e );
}
  return result;
}

/**
* 删除左右两端的空格
*/
String.prototype.trim=function()
{
     return this.replace(/(^\s*)(\s*$)/g, '');
}
/**
* 删除左边的空格
*/
String.prototype.ltrim=function()
{
     return this.replace(/(^\s*)/g,'');
}
/**
* 删除右边的空格
*/
String.prototype.rtrim=function()
{
     return this.replace(/(\s*$)/g,'');
}


function lookupElementByXPath(path) {
    var evaluator = new XPathEvaluator(); 
    var result = evaluator.evaluate(path, document.documentElement, null,XPathResult.FIRST_ORDERED_NODE_TYPE, null); 
    return result.singleNodeValue;
}


CSS 定位是弥补 xpath 不足之处的利器

css 模糊匹配类似 perl ,假设您想选择 class 属性中包含 important 的元素,可以用下面这个选择器做到这一点:

p[class~="important"] {color: red;}
分享到:
评论

相关推荐

    JavaScript与Xpath

    在实际项目中,JavaScript 和 XPath 的结合可能涉及到网页自动化、数据抓取、页面元素的定位与操作等。熟悉这两项技术能极大地提升你在 web 开发领域的技能水平。通过不断实践和学习,你可以更好地利用它们来解决...

    Chrome控制台妙用之定位xpath_js_css居家必备好工具

    本文将重点介绍Chrome控制台中的一个实用技巧——利用`$x`命令来定位和操作XPath、JavaScript以及CSS。 XPath是一种在XML文档中查找信息的语言,它可以帮助我们精确地选取HTML或XML文档中的元素。`$x`是Chrome...

    Selenium中使用XPath.docx

    它可以快速定位和复制XPath表达式,以及在控制台使用 `$x(xpath)` 函数验证XPath的正确性。Firebug生成的XPath通常需要根据实际HTML代码进行微调,因为它们基于DOM树,可能与源代码结构略有不同。 除了XPath,...

    简单了解JavaScript操作XPath的一些基本方法

    本篇文章将向您介绍如何使用JavaScript操作XPath。 XPath构建于XML之上,能够以路径的方式表示来确定XML文档中元素的位置。尽管在当前以JSON作为数据交换格式的主流趋势下,XPath的使用已经不如从前频繁,但当处理...

    XPathHelper_2.0.2.zip

    该压缩文件中的"xpath"可能是指XPath Helper插件的主文件,可能包括JavaScript代码、CSS样式表、图标以及其他必要的资源文件,这些文件共同构成了插件的核心功能。安装这个扩展通常只需将zip文件解压并拖放到Chrome...

    xpath-helper工具

    通过输入XPath查询,开发者可以快速定位到HTML文档中的特定元素。例如,如果要选取页面上所有的`&lt;a&gt;`标签,可以使用`//a`这样的表达式;若要选取id为"example"的元素,可以写成`//*[@id='example']`。XPath还支持更...

    ff30 firebug2.0.2 xpath checker0.4.4

    在2.0.2版本中,Firebug提供了对HTML、CSS、JavaScript、DOM的实时编辑和调试功能,使开发者能够快速定位并解决问题。它还有网络监控工具,可以分析页面加载时间,查看HTTP请求和响应。Firebug的脚本调试器允许逐行...

    JS中常用的xpath特性

    在实际应用中,这些XPath表达式可以帮助开发者高效地定位和操作DOM中的特定节点,从而实现各种动态效果和数据提取。需要注意的是,不同的浏览器可能对XPath的支持程度不同,因此在JavaScript中使用XPath时,可能需要...

    Xpath

    XPath是W3C标准的一部分,它的主要目的是为了提供一种简洁且强大的方式来定位XML文档中的特定部分,从而方便数据的提取和处理。 XPath的工作原理是通过路径表达式来选取节点。这些路径表达式类似于我们在文件系统中...

    XPath官方文档 教程

    它们提供了API或者库,如Java的`javax.xml.xpath`,Python的`lxml`,JavaScript的`document.evaluate`,以便于在代码中执行XPath表达式并获取结果。 六、XPath版本差异 XPath 2.0和3.1引入了更多特性,如类型系统、...

    谷歌扩展程序xpath.rar

    通过它可以快速定位和提取网页上的元素,进行数据抓取或自动化任务。使用方法可能包括在扩展的用户界面中输入XPath表达式,然后查看选中的网页元素,或者可能支持将查询结果导出为方便进一步分析的格式。这个扩展...

    XPath Helper:chrome爬虫网页解析工具

    5. **处理动态内容**:对于使用JavaScript动态加载的数据,XPath Helper可能无法直接捕获。这时,可能需要结合其他工具,如Chrome的开发者工具(DevTools)的"Network"面板,查看请求并模拟动态加载。 6. **配合...

    xPath(简单教程)

    例如,在JavaScript中,我们可以使用`document.evaluate()`方法来执行XPath表达式,选取XML或HTML文档中的特定节点。 学习XPath时,初学者应该从理解基本的路径表达式和节点类型开始,然后逐步掌握轴的概念、函数...

    获取网页上 xpath , css 路径的插件, 方便爬虫、自动化测试相关软件工作者快速获取页面上html元素路径

    在IT行业中,尤其是在网页爬虫和自动化测试领域...通过浏览器插件如"xpath-selector-master",我们可以更高效地获取这些路径,提升工作效率,使我们能够更好地专注于开发和测试任务,实现对网页数据的精准定位和处理。

    xpath-helper.zip

    static 文件夹通常存放静态资源,如图片、字体和其他非JavaScript、CSS的文件,它们可能是XPath Helper界面的一部分。 最后,gallery可能是扩展的应用商店截图或示例集合,用于展示XPath Helper在不同场景下的使用...

    谷歌xpath插件

    - **动态内容处理**:在JavaScript中,可以使用XPath API(如`document.evaluate()`)来查找和操作XML或HTML文档中的动态内容。 总的来说,"谷歌xpath插件"为开发者和测试人员提供了一个强大的辅助工具,通过它,你...

    xpath_helper-master.rar

    1. 源代码:可能包括XPath Helper的实现,可能是用JavaScript或者其他编程语言编写的,用于解析和执行XPath表达式。 2. 文档:可能有用户手册、API参考、开发者指南等,帮助用户理解和使用XPath Helper。 3. 测试...

    xpath+APPIUM

    在 Appium 中,XPath 用于定位应用程序界面上的元素,这对于执行自动化测试至关重要。例如,如果你想要点击某个特定按钮或者获取输入框的值,你可以编写一个 XPath 表达式来定位该元素。XPath 提供了多种选择器,如...

    chrome_Xpath_v2.0.2.rar

    XPath使用路径表达式来选取节点,类似于文件系统的路径定位文件。例如,"/html/body/p" 就可以选取HTML文档中所有的段落元素。 在Python中,我们可以使用库如`lxml`或`BeautifulSoup`来配合XPath进行XML或HTML的...

    Xpath读取xml文件,实现文件缓存。

    XPath是XML文档遍历和数据提取的重要工具,它允许我们以简洁的方式定位XML文档中的元素、属性和其他节点。在这个场景中,“Xpath读取xml文件,实现文件缓存”指的是利用XPath来高效地检索XML数据,并通过缓存机制...

Global site tag (gtag.js) - Google Analytics