簡體   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