2012-11-16 11 views
7

मैं पहली तालिका पंक्ति में सभी तालिका कक्ष प्राप्त करने के लिए निम्न कोड का उपयोग करता हूं। मैं फिर प्रत्येक एकल सेल सेल के आंतरिक HTML की जांच करना चाहता हूं। लेकिन वस्तु इस समारोह केवल पहली तालिका सेल द्वारा लौटाए में वास्तव में नहीं है, अन्य सभी गुण अशक्त हैं:कैस्परजेएस getElementsByXPath केवल पहले तत्व को वापस कर रहा है

firstRow = this.evaluate(function() { 
    return __utils__.getElementsByXPath('//tbody/tr[1]/td'); 
}); 

utils.dump(firstRow); 

utils.dump से उत्पादन होता है:

[ 
    { 
     "abbr": "", 
     "align": "", 
     "attributes": {...} 
    }, 
    null, 
    null, 
    null 
] 

मैं भी साथ की कोशिश की utils .findAll और यह वही था। मैं सभी मिलान तत्व कैसे प्राप्त कर सकता हूं?

+0

पहले उत्तर यहाँ मेरे सवाल का जवाब देता है: http://stackoverflow.com/ प्रश्न/10740907/हो रही-ऑल-टेबल-पंक्तियां-और-लौटने-उन्हें-उपयोग-एक-xpath-query-in-casperjs – leah

+0

इस पर एक नज़र डालें, इससे मदद मिलनी चाहिए: http: // stackoverflow। com/प्रश्न/10740907/रही सभी-टेबल-पंक्तियों और लौटने वाला उन्हें का उपयोग-एक-xpath-क्वेरी में casperjs –

उत्तर

4
कैस्पर/PhantomJS evaluate() कार्यों के साथ

, आप देशी डोम तत्वों और कुछ JSON-serializable के तत्वों की सूची मैप करने के लिए है:

var firstRow = this.evaluate(function() { 
    var elements = __utils__.getElementsByXPath('//tbody/tr[1]/td'); 
    return [].map.call(elements, function(element) { 
     return element.outerHTML; 
    }); 
}); 

utils.dump(firstRow); 
संबंधित मुद्दे