Что нового

Поиск текста на сайте IE

BERGAMOD

Новичок
Сообщения
6
Репутация
0
Люди добрые!! помогите пожалуйста уже не знаю где искать на форуме..
Нужно найти 3/4 текста на сайте и выполнять действие.

1 действие работает
Код:
#include <IE.au3>
$oIE = _IECreate ("сайт")
_IELoadWait($oIE,1000)
$oLinks =  _IELinkGetCollection($oIE)
Local $isFind = false
For $oLink in $oLinks
        If _IEPropertyGet($oLink,'innertext')== "Поиск в интернете" Then
            $isFind = True
            MsgBox (0,'Авторизация', 'Текст вижу')
        ExitLoop
        EndIf
Next
If Not $isFind Then
        MsgBox (0,'Авторизация', 'Текст не вижу')
EndIf



Нужно если попадается "Вы сможете проголосовать через" то выходит из аккаунта (Кнопка не активная сделал по мышке
Код:
WinMove("The Abyss", " ", 290, 0, 1090, 900)
MouseMove(1250, 67, 0)
MouseClick("left", 1250, 70, 1, 0)
MouseClick("left", 1140, 170, 1, 0)




Вот нашел что то похожие
Код:
#include <IE.au3>
$oIE = _IECreate(сайт')
_IELoadWait ($oIE)
$sText = _IEBodyReadText($oIE)

Select
    Case StringInStr($sText, 'Авторизация')
        MsgBox(0, 'Заголовок', 'Есть Текст 1')
        ; клик по ссылке
        _IELinkClickByText($oIE, '')

    Case StringInStr($sText, 'Вы сможете проголосовать через')
        MsgBox(0, 'Заголовок', 'Есть Текст 2')
        ; клик по ссылке

		Case StringInStr($sText, 'Текст3')
        MsgBox(0, 'Заголовок', 'Есть Текст 3')
        ; клик по ссылке

EndSelect


но не получается добавить. если нет такого текста то выпалить действие
Код:
MsgBox(64, 'Info', 'Нет такого текста') Then
WinMove("Abг", " ", 290, 0, 1090, 900)
MouseMove(1250, 67, 0)
MouseClick("left", 1250, 70, 1, 0)
MouseClick("left", 1140, 170, 1, 0)
Sleep (3000)
WinClose("Abr")
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Создайте блок Case Else и вставьте туда код. Будет выполняться если не выполнилось не одно из предыдущих условий.
 
Автор
B

BERGAMOD

Новичок
Сообщения
6
Репутация
0
edyapd сказал(а):
Создайте блок Case Else и вставьте туда код. Будет выполняться если не выполнилось не одно из предыдущих условий.

Попробовал, работает толко на один текст
Код:
Select

    Case StringInStr($sText, 'Авторизация')
;~      MsgBox(0, 'Заголовок', 'Есть Текст 1')
        $oIE =_IECreate ("https://mmotop.ru/users/sign_in")
		_IELoadWait ($oIE)
        _IELinkClickByText($oIE, '')
		WinMove("Авторизация", " ", 290, 0, 1090, 900)
		Sleep (2000)
        MouseMove(700, 610, 0)
        MouseClick("left", 700, 610, 1, 0)
        Send(IniRead("!Autologin.ini", GUICtrlRead($List1), "Login", "None"))
        Send("{Tab}")
        Send(IniRead("!Autologin.ini", GUICtrlRead($List1), "Password", "None"))
        Send("{Tab 2}")
        Sleep (3000)
        Send("{Enter}")
        Sleep (3000)
		$IE = _IECreate("http://la2.mmotop.ru/servers/4543/votes/new?world_id=8822")
        _IELoadWait ($IE)
		WinMove("The Abyss", " ", 290, 0, 1090, 900)
        Sleep (2000)
        Send("{F5}")
        Sleep (2000)
 Case Else
;~ 	 MsgBox(64, '', 'Нет такого текста')
	 WinMove("The Abyss", " ", 290, 0, 1090, 900)
MouseMove(1250, 67, 0)
MouseClick("left", 1250, 70, 1, 0)
MouseClick("left", 1140, 170, 1, 0)
Sleep (3000)
WinClose("The Abyss")
EndSelect


мне нужно что бы еще это работало
Код:
Select
    Case StringInStr($sText, 'Вы сможете проголосовать через')
        MsgBox(0, 'Заголовок', 'Есть Текст 2')
        ; клик по ссылке

		Case StringInStr($sText, 'Текст3')
        MsgBox(0, 'Заголовок', 'Есть Текст 3')
        ; клик по ссылке
EndSelect
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Так а зачем вы эти условия убрали? Должно быть примерно так.
Код:
Select
	Case ;Первое условие
	; Код
	Case ;Второе условие
	; Код
	Case ;Третье условие
	; Код
	Case Else ;Если не выполнилось не одно из условий
	; Код
EndSelect

Как только какое то Case выполняется код выходит из структуры Select
Или я чего-то недопонимаю.
 
Автор
B

BERGAMOD

Новичок
Сообщения
6
Репутация
0
Код:
Select
    Case ;Первое условие
    ; Код
    Case ;Второе условие
    ; Код
    Case ;Третье условие
    ; Код
    Case Else ;Если не выполнилось не одно из условий
    ; Код
EndSelect


Так это я побывал :stars: Мне надо что бы если на сайте находил текст то выполнял действия.

Пример:

1) Case StringInStr($sText, 'Авторизация') Нашел этот текст и выполнил действие входа.
2) Case StringInStr($sText, 'Вы сможете проголосовать через') Нашел этот текст и выполнил действие выхода.

Код:
Select

    Case StringInStr($sText, 'Авторизация')
;~      MsgBox(0, 'Авторизация', 'Есть Текст 1')
        $oIE =_IECreate ("https://mmotop.ru/users/sign_in")
		_IELoadWait ($oIE)
        _IELinkClickByText($oIE, '')
		WinMove("Авторизация", " ", 290, 0, 1090, 900)
		Sleep (2000)
        MouseMove(700, 610, 0)
        MouseClick("left", 700, 610, 1, 0)
        Send(IniRead("!Autologin.ini", GUICtrlRead($List1), "Login", "None"))
        Send("{Tab}")
        Send(IniRead("!Autologin.ini", GUICtrlRead($List1), "Password", "None"))
        Send("{Tab 2}")
        Sleep (3000)
        Send("{Enter}")
        Sleep (3000)
		$IE = _IECreate("http://la2.mmotop.ru/servers/4543/votes/new?world_id=8822")
        _IELoadWait ($IE)
;~ 		WinMove("сайт", " ", 290, 0, 1090, 900)
;~         Sleep (2000)
;~         Send("{F5}")
;~         Sleep (2000)
	Case StringInStr($sText, 'Вы сможете проголосовать через')
    MsgBox(0, 'Вы сможете проголосовать через', 'Есть Текст 2')
	$IE = _IECreate("http://la2.mmotop.ru/servers/4543/votes/new?world_id=8822")
        _IELoadWait ($IE)
Case Else
;~ MsgBox(64, '', 'Нет такого текста')
WinMove("сайт", " ", 290, 0, 1090, 900)
MouseMove(1250, 67, 0)
MouseClick("left", 1250, 70, 1, 0)
MouseClick("left", 1140, 170, 1, 0)
Sleep (3000)
WinClose("сайт")
EndSelect
Endif


Первое действие делает, а второе уже нет :(
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Так вы весь код вставьте ещё между
Код:
While 1

WEnd
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Код:
$IE = _IECreate("http://la2.mmotop.ru/servers/4543/votes/new?world_id=8822")
        _IELoadWait ($IE)  ;Лишнее. _IECreate и так ожидает окончание загрузки
 
Верх