Copy the url address of the xPath

That's a good idea for a KM feature request. @peternlewis

For now, you can use this simple JavaScript in Browser Script:

(function myMain () {
  'use strict';

var ptyScriptName   = "Get URL (href) Identified by XPath"
var ptyScriptVer     = "2.0"
var ptyScriptDate   = "2018-05-27"
var ptyScriptAuthor = "@JMichaelTX"
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PURPOSE:  Click on the Hyperlink Identified by the XPath provided by KM

RETURNS:  One of these, as text:
  • URL of xPath Element -- if successful, no errors
    
  • "[ERROR]" at start of results if a script error occurred.
  
KM VARIABALES REQUIRED:
  • xPath    -- the full XPath to the Link
  
    EXAMPLE XPATH:
    //td[@class='category']//a

KM VARIABLES SET:
  • NONE
  
REF:
  • [Introduction to using XPath in JavaScript](https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
  //--- GET THE XPATH FROM KM ---
  var xPathStr = document.kmvar.xPath;
  
  var returnResults = "TBD";
  
  //--- GET THE HTML ELEMENT IDENTIFIED BY THE XPATH ---
  var elemFound =  document.evaluate(
      xPathStr, document, null, 0, null
    ).iterateNext();
    
  if (elemFound) {
    returnResults = elemFound.href;
  }
  else {
    //--- ERROR:  ELEMENT WAS NOT FOUND ---
    returnResults = '[ERROR] Element NOT FOUND for XPath:\n' + xPathStr;
    alert(returnResults);
  }
  
  return returnResults;

})();

Here's an example Macro that uses this script:

MACRO:   Get Link Using XPath [Example]


#### DOWNLOAD:
<a class="attachment" href="/uploads/default/original/3X/3/b/3b83f6116dad0e6e943997d3b519599dafccf870.kmmacros">Get Link Using XPath [Example].kmmacros</a> (5.3 KB)
**Note: This Macro was uploaded in a DISABLED state. You must enable before it can be triggered.**

---



![image|473x1149](upload://hMlJFMYejelFksVObcGSWkuDGIw.jpg)

---

Questions?
5 Likes