Что нового

[Окна, Диалоги] Альтернатива _IEAction($input, 'click')

kristow13

Новичок
Сообщения
76
Репутация
0
Пишу для IE скрипт. На сайте я жму по input и открывается окно выбора файла...
Вторая часть кода по прикреплению файла работает при ручном нажатии по кнопки для вызова окна...
А если скрипт _IEAction($input, 'click') кликает, то пока я не закрою это окно скрипт дальше не идет...
Подскажите как исправить этот косяк? Или чем можно заменить _IEAction($input, 'click')?
Код:
If $input.classname == 'js-shortcut compose__uploader__input' Then
_IEAction($input, 'click')
EndIf
ConsoleWrite("1 ")
Sleep(2000)
WinWait("Выбор выкладываемого файла","",5)
ConsoleWrite("2 ")
ControlSend("Выбор выкладываемого файла", "", "Edit1", "D:\741_report.zip")
ConsoleWrite("3 ")
ControlClick("Выбор выкладываемого файла", "", "Button1", "main")
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Подскажите как решить проблему!
Вот полный код отправки почты через IE mail.ru
Не получается вписать в открывшееся окно путь к файлу....
Код:
#include <IE.au3>

$oIE     = _IECreate("https://e.mail.ru/login",0,1,1,1)
$oForm   = _IEFormGetObjByName($oIE,"Auth")
$oLogin  = _IEFormElementGetObjByName($oForm,"Login")
$oPass   = _IEFormElementGetObjByName($oForm,"Password")
_IEFormElementSetValue($oLogin,"arh")
_IEFormElementSetValue($oPass,"Russi")
_IEFormElementCheckboxSelect ($oForm, "saveauth", "", 0, "byIndex")
_IEFormSubmit($oForm,1)

;Sleep(2000)

$divs = _IETagNameGetCollection($oIE, 'a')
For $div In $divs
    If $div.classname == 'b-toolbar__btn js-shortcut' And $div.rel == 'history' Then
        _IEAction($div, 'click')
        _IELoadWait($oIE)
    EndIf
 Next

Sleep(2000)
_IELoadWait($oIE)

$divs = _IETagNameGetCollection($oIE, 'textarea')
For $div In $divs
    If $div.classname == 'js-input compose__labels__input' Then
        _IEDocInsertText($div,"[email protected]")
    EndIf
 Next

 $divs = _IETagNameGetCollection($oIE, 'input')
For $div In $divs
   If $div.classname == 'compose__header__field' Then
        _IEDocInsertText($div,"Бэкап базы 123456")
   EndIf
   If $div.classname == 'js-shortcut compose__uploader__input' Then
		_IEAction($div, 'click')
   EndIf
Next
ConsoleWrite("1 ")
Sleep(2000)
WinWait("Выбор выкладываемого файла","",5)
ConsoleWrite("2 ")
ControlSend("Выбор выкладываемого файла", "", "Edit1", "D:\741_report.zip")
ConsoleWrite("3 ")
ControlClick("Выбор выкладываемого файла", "", "Button1", "main")
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
да, спасибо. решение уже нашел...
Сейчас пытаюсь как-нибудь отловить окончание загрузки прикрепленного файла...
Подскажите как можно читать style элемента ?
т.е. имя класса статично, а вот style элемента меняется в момент загрузки файла...
Как отловить когда style элемента будет равен = style="width: 100%;"
Код:
<div class="js-bar upload__file__progress__bar" style="width: 100%;"></div>
 

alex33

Скриптер
Сообщения
1,457
Репутация
185
Код:
While 1
	$oDiv = $oIE.document.getElementsByClassName("upload__file__progress__bar").item(0)
	If Not IsObj($oDiv) Then ExitLoop
	ConsoleWrite($oDiv.style.width & @CRLF)
	If $oDiv.style.width == "100%" Then
		MsgBox(0, "style", "Готово!")
		ExitLoop
	EndIf
	Sleep(1000)
WEnd
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Спасибо Alex33.
Очень помогли!
 
Верх