, то нужно прекратить выполнение. Как правильно и лучше всего выцепить присутствие "Игрок:", если используется IE?
Мой вариант заканчивается на этом:
Код:
$oForm=_IEGetObjById($oIE,"command-data-form"); чего-то там в духе $oForm.table... МагияIF$oForm.table.magic="Игрок:"ThenMsgBox(0,"Упс","Завершено")EndIf
$oIE.document.getElementById('formID').getElementsByTagName('table')[0].rows[2].cells[0].innerText; вот так правильнее будет$oIE.document.getElementsByClassName('vis')[0].rows[2].cells[0].innerText; Так тоже работает
Благодарю. Я так понял, что где элемент не уникален, т.е. не ID, то использовать нужно указатель на элемент.
Код:
Local$oIE=_IEAttach($title)_IEAction($oIE,"refresh"); проверка, что окно нужноеLocal$sPlayerFlag=$oIE.document.getElementById('command-data-form').getElementsByTagName('table')[0].rows[2].cells[0].innerTextMsgBox(0,'',$sPlayerFlag)Exit
:( Ошибки:
Код:
" ==> Subscript used on non-accessible variable.:
Local $sPlayerFlag = $oIE.document.getElementById('command-data-form').getElementsByTagName('table')[0].rows[2].cells[0].innerText
Local $sPlayerFlag = $oIE.document.getElementById('command-data-form').getElementsByTagName('table')^ ERROR
>Exit code: 1 Time: 18.45
The requested action with this object has failed
Subscript used on non-accessible variable.
Переезжать на 3.3.12? Попробую еще из под 64-битной запустить.
Добавлено:
Сообщение автоматически объединено:
В связи с тем, что представленное выше упало в ошибку - на getElementsByTagName() грабли, я решил поискать иные варианты.
Код:
Local$sPlayerFlag=$oIE.document.getElementById('command-data-form').getElementsByTagName('span'); пустотаLocal$sPlayerFlag=$oIE.document.getElementById('command-data-form').getElementsByTagName('span')[0]; Subscript used on non-accessible variable.Local$sPlayerFlag=$oIE.document.getElementById('command-data-form').getElementsByTagName('span')[0].innerText; Subscript used on non-accessible variable.
Добавлено:
Сообщение автоматически объединено:
Пришел к такому варианту:
Код:
; Внутри формы с Id существуют Span с классами, в том числе с нужным data-*, но так как ссылку по классу мне так не удалось сделать, то обход по всем Span в форме$oForm=$oIE.document.getElementById('formId'); Object$oElement=_IETagNameGetCollection($oForm,'tag',0); Object$sElement=$oElement.getAttribute('data-*'); String or Keyword (fail)IfIsString($sElement)and$sElement>0Then; OkEndIf
Теперь, по-моему, короче некуда. :D
Буду признателен, если кто-то напишет, как его улучшить.
Как нужно правильно делать, если ищете по классу или тэгу. Сам не проверял, но так не пробовал:
Код:
$oElements=$oIE.document.getElementsByTagName('table')for$oElementin$oElements; делаем, что требуетсяnext