Что нового

[Автоматизация] Ошибка типа $oInput.type="text"

vitaliy4us

Новичок
Сообщения
158
Репутация
4
Вот часть скрипта для заполнения формы поиска (текстовое поле формы поиска ищется по его типу):
Код:
Local $oInputs = _IETagNameGetCollection($oIE, "input")
For $oInput In $oInputs
	If $oInput.type="text" Then
		_IEAction($oInput, 'focus')
		_IEFormElementSetValue($oInput, "текст поиска")
		Send("{ENTER}")
	EndIf
Next

Самое интересное, что скрипт отрабатывает, поле поиска заполняется, найденная информация выводится, но при этом в скрипте возникает ошибка: The requested action with this object has failed.:
If $oInput.type="text" Then
If $oInput.type^ ERROR

Скрипт завершается и все, что находится после этого участка кода, не выполняется. Интересно, что если заменить тип "text" на любой другой тип (например "img" или просто ""sfdadf", то ошибки не возникает, скрипт продолжается, хотя, естественно, ничего и не ищется, поскольку поле не заполняется). Что здесь не так?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Автоматизация] Ошибка в рабочем скрипте

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Автоматизация] Ошибка в рабочем скрипте" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 
Автор
V

vitaliy4us

Новичок
Сообщения
158
Репутация
4
С ошибкой определился. Она возникала, как и предполагалось, из-за стремления к универсализации. В цикле перебирались (и заполнялись) и другие текстовые поля. У нужного поля имеется идентификатор, которым можно воспользоваться, но как все таки можно обойтись без него для заполнения нужного поля?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
vitaliy4us [?]
но как все таки можно обойтись без него
Код:
$oInputs = _IETagNameGetCollection($oIE, "input")
$iIndex = @extended -1
For $i = 0 To $iIndex
    $oInput = _IETagNameGetCollection($oIE, "input", $i)
	_IEFormElementSetValue($oInput, "текст поиска")
Next
 
Верх