zoukankan      html  css  js  c++  java
  • Way To Get Xpath From IE (forward)

    http://blog.sina.com.cn/s/blog_66e428f701014tom.html

    Are you stuck with an application that only works in IE?
    Do you want the XPATH of an element that can be seen only IE? Unable to replicate the scenario in firefox. There are many firefox addons like xpather, xpath-checker and firebug that will give you the xpath of an element in a second. But sadly there is no addon or tool avaialable that will do this for IE. For most cases you can get the xpath of the elements that fall in your script using the above tools in firefox and tweak them a little (if required) to make them work in IE. But if you are testing an application that will work only in IE or the specific scenario or page that has this element will open-up/play-out only in IE then you cannot use any of the above mentione tools to find the XPATH.
    Well the only thing that works in this case is the Bookmarklets that were coded just for this purpose. Bookmarklets are JavaScript code that you will add in IE as bookmarks and later use to get the XPATH of the element you desire. Using these you can get the XPATH as easily as you get using xpather or any other firefox addon.

    STEPS TO INSTAL BOOKMARKLETS
    1)Open IE
    2)Type about:blank in the address bar and hit enter
    3)From Favorites main menu select--->Add favorites
    4) In the Add a favorite popup window enter name GetXPATH1.
    5)Click add button in the add a favorite popup window.
    6)Open the Favorites menu and right click the newly added favorite and select properties option.
    7)GetXPATH1 Properties will open up. Select the web Document Tab.
    8)Enter the following in the URL field.

    javascript:function getNode(node){var nodeExpr=node.tagName;if(!nodeExpr)return null;if(node.id!=''){nodeExpr+="[@id='"+node.id+"']";return "/"+nodeExpr;}var rank=1;var ps=node.previousSibling;while(ps){if(ps.tagName==node.tagName){rank++;}ps=ps.previousSibling;}if(rank>1){nodeExpr+='['+rank+']';}else{var ns=node.nextSibling;while(ns){if(ns.tagName==node.tagName){nodeExpr+='[1]';break;}ns=ns.nextSibling;}}return nodeExpr;}

    9)Click Ok. Click YES on the popup alert.
    10)Add another favorite by following steps 3 to 5, Name this favorite GetXPATH2 (step4)
    11)Repeat steps 6 and 7 for GetXPATH2 that you just created.
    12)Enter the following in the URL field for GetXPATH2

    javascript:function o__o(){var currentNode=document.selection.createRange().parentElement();var path=[];while(currentNode){var pe=getNode(currentNode);if(pe){path.push(pe);if(pe.indexOf('@id')!=-1)break;}currentNode=currentNode.parentNode;}var xpath="/"+path.reverse().join('/');clipboardData.setData("Text", xpath);}o__o();

    13)Repeat Step 9.

    You are all done!!

    Now to get the XPATH of elements just select the element with your mouse. This would involve clicking the left mouse button just before the element (link, button, image, checkbox, text etc) begins and dragging it till the element ends. Once you do this first select the favorite GetXPATH1 from the favorites menu and then select the second favorite GetXPATH2. At his point you will get a confirmation, hit allow access button. Now open up a notepad file, right click and select paste option. This will give you the XPATH of the element you seek.


    *I got this bookmarklets from some other site but can't remember which one. Credit goes to the guy who created these JS.

  • 相关阅读:
    Identity Server4 基础应用(一)Client Credentials
    AX2012 form displays unusually because of native resolution issues(由于本机高分辨率问题导致AX2012界面显示异常)
    AX视图View中添加静态方法
    AX2012导Demo数据
    AX多线程编译
    C# ListView用法详解 很完整
    用 C# 如何判断数据库中是否存在一个值
    ASCII码对照表
    C#中Chart的简单使用(柱状图和折线图)
    使用Filezilla Server配置FTP服务器
  • 原文地址:https://www.cnblogs.com/backpacker/p/2780564.html
Copyright © 2011-2022 走看看