繁体   English   中英

XPath选择属性在Chrome上失败

[英]XPath selecting attribute fails on Chrome

这是我与expect.js运行的一个小测试:

describe('xpath', function () {
    it('finds attribute nodes', function () {
        $(document.body).append('<string fooBar="bar"><data id="xyz"></data></string>');
        var xyz = document.getElementById('xyz');
        expect(xyz).not.to.be(null);

        var nodes = document.evaluate('../@fooBar', xyz, null, XPathResult.ANY_TYPE, null);
        var element = nodes.iterateNext();
        expect(element.nodeValue).to.equal('bar');
    });
});

我正在使用Testacular在Chrome和Firefox上对其进行测试,尽管它在Firefox上通过了测试,但在Chrome上却失败了,并显示一个错误,指出那个elementnull 对我来说真正疯狂的部分是,如果我将fooBar更改为foo ,它将在两个系统上传递。 如果我使用Foo而不是foo Chrome也会崩溃。 换句话说,Chrome中的XPath查询似乎在搜寻属性中包含大写字母时中断。 这是正常行为吗? 我想念什么吗? 还是这是Chrome中的错误?

更新1

我添加了Google的Wicked Good XPath,现在Internet Explorer也可以使用,但是Chrome仍然无法运行。

更新2

如果实际属性具有上限,则XPath查询可在Chrome上运行,但XPath值均为小写。

您在使用XHTML吗? 如果是这样,则XHTML规范规定所有元素和属性名称都必须小写

您可能会发现Chrome仅适合以此为基础评估XPath,而其他浏览器更符合XML(在任何情况下均有效)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM