Нет, вы не можете дважды вызвать getElementsInfo()
для ранее извлеченного элемента.
CasperJS возвращает массив объектов JSON, представляющих элементы, выбранные вами в следующем формате:
[
{
"attributes": {
"align": "left",
"dir": "ltr",
"id": "hplogo",
"onload": "window.lol&&lol()",
"style": "height:110px;width:276px;background:url(/images/srpr/logo1w.png) no-repeat",
"title": "Google"
},
"height": 110,
"html": "<div nowrap=\"nowrap\" style=\"color:#777;font-size:16px;font-weight:bold;position:relative;left:214px;top:70px\">France</div>",
"nodeName": "div",
"tag": "<div dir=\"ltr\" title=\"Google\" align=\"left\" id=\"hplogo\" onload=\"window.lol&&lol()\" style=\"height:110px;width:276px;background:url(/images/srpr/logo1w.png) no-repeat\"><div nowrap=\"nowrap\" style=\"color:#777;font-size:16px;font-weight:bold;position:relative;left:214px;top:70px\">France</div></div>",
"text": "France\n",
"visible": true,
"width": 276,
"x": 62,
"y": 76
}
]
Как вы можете видеть, innerHTML представляется в виде строки, доступной путем вызова атрибута html
(т.е. rows[0].html
).
Если возможно, вам следует просто изменить селектор, который вы передаете getElementsInfo()
:
var cells = this.getElementsInfo('table.dateentrytable tr td');
В противном случае, если это не вариант, вы можете проанализировать результирующую строку HTML (т.е. rows[0].html
) в элемент DOM и выбрать ячейки, используя getElementsByTagName()
или эквивалентный метод.