Автор Тема: Как узнать что на странице Chrome что-то нашлось после Cntrk+f  (Прочитано 497 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 170
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Всем привет
Ищу на странице Chrome, используя Cntrl+f. Добавляю текст в поле ввода - для поиска. Как можно узнать  с помощью Autoit - что поиском что-то найдено т.е. не 0/0
Спасибо

Дополнено
Упустил из виду. Если напротив - ничего не нашлось: тоже вариант. получить бы и об этом сообщение от Autoit
« Последнее редактирование: Октябрь 24, 2017, 01:56:39 от dr.room »
Если бы один пример - было бы волшебно...для новичка

Русское сообщество AutoIt


Помечен как лучший ответ пользователем dr.room Отправлен Октябрь 25, 2017, 21:36:43

Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#include "UIAutomate.au3"       ;    http://autoit-script.ru/index.php?topic=16780.0

$hWnd = WinActivate("[REGEXPTITLE:.*Google Chrome]")
if @error Then Exit MsgBox(4096, "Ошибка", "Окно не найдено")

$oParent = _UIA_GetElementFromHandle($hWnd)

$oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Найти")
If @error Then Exit MsgBox(4096, "Ошибка", "Строка поиска не отображается")
$oElement = _UIA_ElementGetPreviousNext($oElement)[1]

While 1

   $sValue = _UIA_ElementGetPropertyValue($oElement, "Name")
   If $sValue <> "0/0" Then
      MsgBox(4096, "", $sValue)
   EndIf
   Sleep(200)
   
WEnd

« Последнее редактирование: Октябрь 25, 2017, 10:30:39 от gunter123, Причина: исправил »
Is it future or is it past?

Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 170

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Фантастика! Спасибо!
Мне пару  моментов только не понятны, если можно, уточните что означают:
  • REGEXPTITLE
  • [1]
  • "Name"
Спасибо!



 

Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
 :)
Код: AutoIt [Выделить]
WinActivate("[REGEXPTITLE:.*Google Chrome]")  ; Активирует окно, в названии которого есть строка "Google Chrome"
_UIA_ElementGetPreviousNext($oElement)[1]    ;  Эта функция возвращает массив, в котором первый элемент - предыдущий от указанного, а второй - следующий за указанным элементом. Поскольку нам нужен следующий элемент, мы обращаемся сразу ко второму элементу массива, возвращенного функцией
_UIA_ElementGetPropertyValue($oElement, "Name")  ; Возвращает свойство Name указанного элемента. В данном случае, в свойстве Name хранится нужная нам строка


Русское сообщество AutoIt

Re: Как узнать что на странице Chrome что-то нашлось после Cntrk+f
« Ответ #3 Отправлен: Октябрь 26, 2017, 09:50:55 »

Оффлайн dr.room [?]

  • Новичок
  • *
  • Сообщений: 170

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Здравствуйте!
Кажется я начинаю что-то понимать. Спасибо
Я попробовал проанализировать, вот что вышло:
Код: AutoIt [Выделить]
$oElement = _UIA_ElementGetPreviousNext($oElement)[1]
 

Определяет соседний элемент, от текущего: того-же уровня. но следующего за ним т.е. расположенного физически за ним
Но что указывает на то что это элементы общего уровня? Возможно учитывается уровень по оси Z ?
Код: AutoIt [Выделить]
   $sValue = _UIA_ElementGetPropertyValue($oElement, "Name")
 

Параметр Name это некий универсальный ключ, применяющейся если свойство объекта не указывается точно? Возможно  - свойство не известно. Зато Name позволяет преобразовать Autoit-ом свойство в id. А раз так - id будет известно Autoit
Но если так, вовсе не обязательно указывать в коде само значение: я проверил - скрипт работает!
Код: AutoIt [Выделить]
; до
   If $sValue <> "0/0" Then
; после
   If $sValue <> "" Then
 

И поставит ExitLoop после MsgBox  - иначе окно ни в жизнь не закроется  :)

PS
Если что не так- заранее извиняюсь я не фокусник - я только учусь не программист  :)

« Последнее редактирование: Октябрь 27, 2017, 00:39:28 от dr.room »

Русское сообщество AutoIt

Re: Как узнать что на странице Chrome что-то нашлось после Cntrk+f
« Ответ #4 Отправлен: Октябрь 27, 2017, 00:17:43 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
4276 Просмотров
Последний ответ Сентябрь 02, 2011, 19:24:11
от hohmuch
0 Ответов
1581 Просмотров
Последний ответ Январь 12, 2013, 08:49:55
от mousekey
5 Ответов
3536 Просмотров
Последний ответ Май 25, 2013, 17:05:22
от inververs
2 Ответов
1833 Просмотров
Последний ответ Октябрь 03, 2014, 23:05:15
от InnI
15 Ответов
2618 Просмотров
Последний ответ Ноябрь 29, 2015, 18:03:41
от pww2000
1 Ответов
625 Просмотров
Последний ответ Ноябрь 27, 2015, 06:23:06
от Sln
0 Ответов
522 Просмотров
Последний ответ Март 07, 2016, 01:52:34
от joker2d
9 Ответов
2420 Просмотров
Последний ответ Июль 17, 2016, 18:29:48
от dr.room
4 Ответов
1200 Просмотров
Последний ответ Январь 02, 2017, 16:20:45
от astanid
1 Ответов
641 Просмотров
Последний ответ Март 03, 2017, 17:15:50
от Garrett