`
deepeye
  • 浏览: 17785 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取元素的xpath, 转换xpath为csspath进行jQuery元素获取

阅读更多
var $shadow = new Object();
	/**
        获取元素的xpath
        特性:
        - 转换xpath为csspath进行jQuery元素获取
        - 仅生成自然表述路径(不支持非、或)
        @param dom {String/Dom} 目标元素
        @returns {String} dom的xpath路径
	*/
	$shadow.domXpath = function(dom) {
	  dom = $(dom).get(0);
	  var path = "";
	  for (; dom && dom.nodeType == 1; dom = dom.parentNode) {
	    var index = 1;
	    for (var sib = dom.previousSibling; sib; sib = sib.previousSibling) {
	      if (sib.nodeType == 1 && sib.tagName == dom.tagName)
	        index++;
	      }
	    var xname =  dom.tagName.toLowerCase();
	    if (dom.id) {
	      xname += "[@id=\"" + dom.id + "\"]";
	    } else {
	      if (index > 0)
	        xname += "[" + index + "]";
	    }
	    path = "/" + xname + path;
	  }
	  
	  path = path.replace("html[1]/body[1]/","html/body/");
	  
	        return path;
	};


/**
	        根据xpath获取元素
	        特性:
	        - 转换xpath为csspath进行jQuery元素获取
	        - 仅支持自然表述(不支持非、或元素选取)
	        @param xpath {String} 目标元素xpath
	        @returns {jQuery Object} 元素/元素集合
	*/
	$shadow.xpathDom = function(xpath){
	  		// 开始转换 xpath 为 css path
	        // 转换 // 为 " "
	        xpath = xpath.replace(/\/\//g, " ");
	        // 转换 / 为 >
	        xpath = xpath.replace(/\//g, ">");
	        // 转换 [elem] 为 :eq(elem) : 规则 -1
	        xpath = xpath.replace(/\[([^@].*?)\]/ig, function(matchStr,xPathIndex){
	                var cssPathIndex = parseInt(xPathIndex)-1;
	                return ":eq(" + cssPathIndex + ")";
	        });
	        // 1.2 版本后需要删除@
	        xpath = xpath.replace(/\@/g, "");
		  // 去掉第一个 >
		  xpath = xpath.substr(1);
		  alert(xpath);
		        // 返回jQuery元素
		  return $(xpath);
	};
分享到:
评论

相关推荐

    IE下获取XPATH小工具源码_xpath_

    3. **XPath表达式构建**:在获取到用户选择的元素后,小工具需要根据DOM结构自动生成XPath表达式。这涉及到对DOM树的遍历和XPath语法的理解,包括路径、轴、节点测试和谓语等。 4. **用户交互**:为了方便用户,小...

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

    比如,`.myClass` 会选择具有`myClass`类的所有元素,而`#myID`则会选取ID为`myID`的唯一元素。对于复杂的选取需求,还可以使用组合选择器、伪类和属性选择器等。 Edge和Chrome浏览器中都有插件可以帮助我们快速...

    查看网页元素的xpath

    例如,`//input[@type='text']` 选取所有类型为 `text` 的 `input` 元素。 5. **函数与操作符**:XPath 支持算术运算、字符串比较和函数调用。比如 `count()` 可计算节点数量,`contains()` 检查字符串是否包含特定...

    xpath-helper 插件及使用方法

    XPath Helper是一款强大的Chrome浏览器插件,专为网页元素定位和数据提取而设计。它使得开发者和数据抓取者能够方便地生成和测试XPath表达式,从而高效地在HTML文档中定位所需信息。XPath(XML Path Language)是一...

    页面元素xpath定位工具.rar

    本压缩包"页面元素xpath定位工具.rar"提供了一个名为DragonTestingXpathHelperV1.0.2的工具,该工具专门用于帮助用户快速、准确地找到网页上的可点击元素和输入字段,并自动生成对应的XPath表达式。 在网页自动化...

    uiautomatorviewer获取xpath工具

    uiautomatorviewer获取xpath工具 uiautomatorviewer获取xpath工具 uiautomatorviewer获取xpath工具 uiautomatorviewer获取xpath工具 uiautomatorviewer获取xpath工具

    对Xpath 获取子标签下所有文本的方法详解

    当你需要保留子元素间的空白,或者统一处理空白(比如转换为单个空格)时,可以使用`normalize-space()`函数。它会删除文本前后的空白,并将连续的空白字符替换为一个空格: ```python normalized_texts = data....

    IE浏览器Xpath工具.zip

    上述示例中,`//input[@id='username']`是一个XPath表达式,它会选取id属性为'username'的所有`<input>`元素。 Python的另一个自动化测试库是Selenium WebDriver的Python绑定,它提供了更简洁的语法: ```python ...

    用xpath精确定位节点元素

    ### 使用XPath精确定位节点元素 #### XPath简介与重要性 XPath是一种用于在XML文档中查找信息的语言。它被设计用来在XML文档中导航,帮助开发者精确地定位和选取节点。XPath在XSLT(Extensible Stylesheet ...

    Selenium WebDriver中使用By.Xpath快速定位页面元素

    Selenium WebDriver 中使用 By.Xpath 快速定位页面元素 Selenium WebDriver 是一个自动化测试工具,可以模拟用户交互来对 Web 应用程序进行测试。其中,定位页面元素是自动化测试的关键步骤。By.Xpath 是一种快速...

    Xpath生成器,自动生成XPATH,C#版

    5. **函数应用**:XPath内置了一些函数,如 `text()` 用于获取元素的文本内容,`count()` 计算节点个数等,生成器可能能帮助用户创建这些函数的应用表达式。 6. **测试与验证**:提供测试功能,让用户输入XML数据,...

    谷歌获取xpath插件

    通过这个插件,你可以点击页面上的任何元素,它会自动为你提供该元素的XPath路径,大大简化了网页元素的定位过程。同时,它还支持CSS选择器,满足不同场景下的元素定位需求。 2. **SelectorsHub**: SelectorsHub...

    Java中使用xpath获取xml中的数据

    在处理大型XML文档时,使用XPath配合Java进行数据提取,可以避免遍历整个DOM结构,从而提高性能。 总结,Java中使用XPath获取XML数据涉及的关键知识点包括: 1. XPath的基本概念和语法。 2. Java的`javax.xml.xpath...

    谷歌浏览器XPath2.0插件

    XPath Helper是一款专为谷歌浏览器设计的插件,它极大地简化了网页抓取和解析过程,尤其对于使用XPath语法来定位HTML元素的用户来说,这款工具是不可或缺的助手。XPath(XML Path Language)是一种在XML文档中查找...

    xslt与xpath入门转换xml文档与数据

    XPath的核心在于路径表达式,类似于文件系统中的路径,例如“/root/element”表示从根节点开始查找名为“element”的子元素。 以下是对XSLT和XPath的一些关键知识点的详细说明: 1. **XSLT模板**:XSLT通过模板来...

    Python爬虫解析XPATH讲义

    * `xpath('//div[@id="test"]/text()')`:获取id属性为test的div元素的文本内容 XPATH语言是Python爬虫开发中一个非常重要的工具,通过学习XPATH语言,我们可以更方便地提取HTML和XML文档中的信息。

    虎扑NBA球员数据获取以及xpath安装包及使用文档

    数据分析部分,获取到球员得分数据后,我们可以用pandas库进行清洗和整理,将数据构建成结构化的DataFrame。之后,可以使用matplotlib或seaborn进行可视化,比如绘制球员得分变化图、对比不同球员的得分分布等。数据...

    用XPath精确定位节点元素

    XPath,全称XML Path Language,是一种在XML文档...在实际工作中,XPath常被用在XSLT转换、XML验证、数据提取等多个场景,是XML处理中不可或缺的一部分。因此,对XPath的精通对于IT从业者来说是一项非常有价值的技术。

    XPathHelper_2.0.2_xpath_

    使用XPathHelper这样的工具,开发者可以高效地进行网页元素的选取和测试,大大提高了Web开发和自动化测试的效率。对于熟悉XPath语法的开发者来说,XPathHelper是一个不可或缺的助手。通过学习和熟练掌握XPath,我们...

Global site tag (gtag.js) - Google Analytics