Что нового

UIAutomate - автоматизация нестандартных элементов GUI

hexin

Новичок
Сообщения
19
Репутация
0
Убедитесь в правильном названии строки адреса - её текст зависит от поиска по умолчанию (Google, Яндекс и т.д.)
Точно!
А я не мог понять в чем дело...
Оказывается после обновления поиск меняется с гугла на яндекс...
Спасибо!
Сообщение автоматически объединено:

Подскажите пожалуйста, а можно ли определить номер по порядку (слева на право) активной вкладки в Firefox?
То есть например открыто 10 страниц, а соответсвенно 10 вкладок, и активна 5тая вкладка, вот номер её слева на право можно определить?
чтобы скрипт показал что активна 5тая вкладка.
 
Последнее редактирование:
Автор
I

InnI

AutoIT Гуру
Сообщения
4,591
Репутация
1,286
определить номер по порядку (слева на право) активной вкладки в Firefox
Код:
#include "UIAutomate.au3"

$oParent = _UIA_GetElementFromHandle(WinWait("[RegexpTitle:.*Mozilla Firefox]"))
$aTab = _UIA_FindAllElements($oParent, "ControlType", $UIA_TabItemControlTypeId)
ConsoleWrite("Всего вкладок: " & $aTab[0] & @CRLF)
$aSel = _UIA_FindElementsInArray($aTab, "SelectionItem.IsSelected", True)
ConsoleWrite("Выбрано вкладок: " & $aSel[0] & @CRLF)
$aFocus = _UIA_FindElementsInArray($aTab, "IsKeyboardFocusable", True, False, True)
ConsoleWrite("Номер активной вкладки: " & $aFocus[1] & @CRLF)
 

hexin

Новичок
Сообщения
19
Репутация
0
Не знаю почему но у меня практически не работает.
А именно если в браузере открыта одна вкладка то затрачивается время в 5 секунд, а если вкладок 2 то 48 секунд и увеличивается с колличеством вкладок.
Ну ждать 48 секунд на две вкладки это не те скорости...
Может у меня только так?
Лиса портейбл версия 92, виндовс10.
Зависание идет именно на функции $aTab = _UIA_FindAllElements($oParent, "ControlType", $UIA_TabItemControlTypeId)
Код:
#include "UIAutomate.au3"
WinActivate("[REGEXPTITLE:.*Mozilla Firefox]")

$oParent = _UIA_GetElementFromHandle(WinWait("[RegexpTitle:.*Mozilla Firefox]"))
ToolTip("1",0,0)

$timer = TimerInit()
$aTab = _UIA_FindAllElements($oParent, "ControlType", $UIA_TabItemControlTypeId)
MsgBox(4096, "", TimerDiff($timer)/1000)

ToolTip("2",0,0)
ConsoleWrite("Всего вкладок: " & $aTab[0] & @CRLF)
$aSel = _UIA_FindElementsInArray($aTab, "SelectionItem.IsSelected", True)
ConsoleWrite("Выбрано вкладок: " & $aSel[0] & @CRLF)
$aFocus = _UIA_FindElementsInArray($aTab, "IsKeyboardFocusable", True, False, True)
ConsoleWrite("Номер активной вкладки: " & $aFocus[1] & @CRLF)


А так же через раз и вообще не считывает из за ошибки
"D:\script5.au3" (12) : ==> Subscript used on non-accessible variable.:
ConsoleWrite("Всего вкладок: " & $aTab[0] & @CRLF)
ConsoleWrite("Всего вкладок: " & $aTab^ ERROR
 
Последнее редактирование:
Автор
I

InnI

AutoIT Гуру
Сообщения
4,591
Репутация
1,286
Зависание идет именно на функции
Пробуйте
Код:
#include "UIAutomate.au3"

$oParent = _UIA_GetElementFromHandle(WinWait("[RegexpTitle:.*Mozilla Firefox]"))
$oTabCond = _UIA_CreatePropertyCondition("ControlType", $UIA_TabControlTypeId)
$oTab = _UIA_GetElementFromCondition($oParent, $oTabCond)
$oItemCond = _UIA_CreatePropertyCondition("ControlType", $UIA_TabItemControlTypeId)
$aItems = _UIA_FindAllElementsEx($oTab, $oItemCond, $TreeScope_Children)
$aFocus = _UIA_FindElementsInArray($aItems, "IsKeyboardFocusable", True, False, True)
ConsoleWrite("Номер активной вкладки: " & $aFocus[1] & @CRLF)

Сообщение автоматически объединено:

А так же через раз и вообще не считывает из за ошибки
Firefox при этом продолжает работать или завершается с ошибкой?
 
Последнее редактирование:

hexin

Новичок
Сообщения
19
Репутация
0
Он как бы замораживается, вкладки невозможно переключить, ссылки не работают, скрол вверх вниз страницу невозможно прокрутить, текст мышкой выделить не даёт, ну то есть окно лисы полностью заморажиавется, даже кнопки меню Файл, Правка, Вид... и даже кнопки "свернуть" и "закрыть" окно боаузера тоже заморожены.
Ну а потом вот когда скрипт завершит работу, эти 48 секунд, то он размораживается и всё работает как и прежде.
А вот если не дождаться завершения скрипта а самому его выключить то браузер так и остается замороженым.

Сообщение автоматически объединено:

Спасибо!
Вот этот код прекрасно работает.
10 вкладок считывает за 0,93 секунды, это уже совсем другое дело.
 
Последнее редактирование:

index

Новичок
Сообщения
2
Репутация
0
Здравствуйте.
Впервые сегодня узнал об UIAutomate.
Скажите, пожалуйста, есть ли возможность получить HTML-текст всей страницы из браузера Google Chrome (класс окна "Chrome_RenderWidgetHostHWND")?
Почитал форум, не нашёл ничего об этом. В списке увидел функцию "_UIA_ElementTextSetValue", но соответствующую функцию "_UIA_ElementTextGetValue" тоже не нашёл.
 
Автор
I

InnI

AutoIT Гуру
Сообщения
4,591
Репутация
1,286
получить HTML-текст всей страницы из браузера Google Chrome
Код:
WinActivate("[RegexpTitle: - Google Chrome]")
Send("^u")
Sleep(5555)
Send("^a")
Sleep(555)
Send("^c")
Sleep(555)
Send("^w")
Sleep(555)
$HTMLText = ClipGet()
ConsoleWrite($HTMLText & @CRLF)
 

hexin

Новичок
Сообщения
19
Репутация
0
Подскажите пожалуйста а как активизировать (навести фокус) на вкладку Firefox по её номеру по порядку?
Нашел пример как активизировать по имени, но не пойму как активизировать но её номеру.
То есть если считать вкладки слева на право, 1,2,3...и тд. и например нужно активизировать перувую вкладку, то как это сделать?
 
Автор
I

InnI

AutoIT Гуру
Сообщения
4,591
Репутация
1,286
Код:
#include "UIAutomate.au3"
$Num = 3
$oParent = _UIA_GetElementFromHandle(WinWait("[RegexpTitle:.*Mozilla Firefox]"))
$oTabCond = _UIA_CreatePropertyCondition("ControlType", $UIA_TabControlTypeId)
$oTab = _UIA_GetElementFromCondition($oParent, $oTabCond)
$oItemCond = _UIA_CreatePropertyCondition("ControlType", $UIA_TabItemControlTypeId)
$aItems = _UIA_FindAllElementsEx($oTab, $oItemCond, $TreeScope_Children)
If $Num > 0 And $Num <= $aItems[0] Then _UIA_ElementMouseClick($aItems[$Num])
 

hexin

Новичок
Сообщения
19
Репутация
0
InnI
Спасибо.
Но я так понял таким способом можно выделять вкладки если вкладок мало, а если вкладок много, ну например 50, то там появляются прокрутки влево и вправо и те ссылки скрываются с экрана и код не срабатывает. То есть все те вкладки которые будут скрыты в списке их не получится выделить
 
Последнее редактирование:
Автор
I

InnI

AutoIT Гуру
Сообщения
4,591
Репутация
1,286
То есть все те вкладки которые будут скрыты в списке их не получится выделить
Верно. Потому что вкладки Firefox не реагируют на команду установки фокуса ввода. И шаблон прокрутки не поддерживают.
 
Верх