Я пытаюсь запустить нашу автоматизацию, написанную для IE, в Firefox 3.6 и сталкиваюсь с этой неприятной проблемой: у меня есть код:
Set cellDataItems = Browser().Page().WebElement().Object.getElementsByTagName("div")
For i = 0 to cellDataItems.length -1
MsgBox (cellDataItems.item(i).innerHTML)
Next
Когда скрипт переходит в строку с MsgBox, если останавливается с ошибкой:
TypeError: объект obj [FuncName] не определен
Затем нажимаю отладку, вижу, что i = 0. Я добавил cellDataItems.item (i) .innerHTML в средство просмотра отладки, он показывает его значение (см. Ниже) без ошибок. Кроме того, cellDataItems.item (i) .textContent отлично отображается в средстве просмотра отладки.
Значение cellDataItems.item (i) .innerHTML при i = 0:
<table class="x-grid3-row-table" style="width: 100px;" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="x-grid3-col x-grid3-cell x-grid3-td-0 x-grid3-cell-first " style="width: 98px; text-align: left;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-0" unselectable="on"><div align="left">AUD/USD</div></div></td></tr></tbody></table>
Итак, почему скрипт выдает эту ошибку, но программа просмотра отладки показывает ее? Спасибо!
Обновление. В консоли Firefox я вижу более подробную информацию:
Ошибка: obj [FuncName] не определено. Исходный файл: file: /// C: /Program%20Files/HP/QuickTest%20Professional/Bin/Mozilla/Common/components/ScriptWrapperXPCOM.js -> file: /// c: / program% 20files / hp / quicktest% 20professional / bin / JSFiles / mzDotObj.js Строка: 76
обновление 2:
MsgBox (eval(cellDataItems.item(i).innerHTML))
Когда использую eval - работает! Может быть, есть способ отладки кода расширения QTP для firefox?
обновление 3: Как это возможно: выражение "colItem.className" имеет значение "x-panel", но после того, как я выполняю выражение
sClassName = colItem.className
значение sClassName пусто:
Это работает: sClassName = eval ("colItem.className")
Как такое вообще возможно? !!!!!! Или я схожу с ума, или у QTP 11 внутри дефект biiig!