Hacker News new | ask | show | jobs
by kabacha 2146 days ago
Would be nice if readme would show some actual example; now it just trails off:

    let element = robulaPlus.getElementByXPath('/html/body/div/span/a', 
    document);
    robulaPlus.getRobustXPath(element, document);
    # what's the result?
1 comments

It depends on the content of the HTML document but I agree with you.

I tried running the algorithm in Chrome. It output much shorter XPath than one copied from Chrome Developer tool.

  e.g. "//*[@id="rso"]/div[4]/div/div[1]/a/h3" => "//*[contains(text(),'(text of the element)')]"
Your example seems pretty awful though. You'd rarely want to select element based on it's text
I think the author claims the XPath is more "robust" because it doesn't depend on indexes of the elements so you can add elements without breaking the XPath. (But it is arguable which one is better ...)