PhantomJS支持哪种XPath版本?

时间:2015-04-25 12:15:45

标签: selenium xpath phantomjs version ghostdriver

我使用Selenium和PhantomJS。如何找出PhantomJS中使用的XPath版本?

1 个答案:

答案 0 :(得分:3)

您可以直接检查是否支持特定功能。例如,boolean()由XPath 1.0提供,但abs()仅由XPath 2.0提供。

PhantomJS 1.x& 2.0仅支持XPath 1.0。

完整脚本:

var page = require('webpage').create();

console.log(JSON.stringify(page.evaluate(function(){
    var b = -1, body = -1, abs = -1;
    try{
        b = document.evaluate("boolean('a')", document, null, XPathResult.BOOLEAN_TYPE, null).booleanValue;
    }catch(e){}
    try{
        body = !!document.evaluate("//body", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    }catch(e){}
    try{
        abs = document.evaluate("abs(-10.5)", document, null, XPathResult.NUMBER_TYPE, null).numberValue;
    }catch(e){}
    return {
        "boolean": b,
        "body": body,
        "abs(-10.5)": abs,
    };
}), undefined, 4));
phantom.exit();

输出:

{
    "abs(-10.5)": -1,
    "body": true,
    "boolean": true
}