@ -16,7 +16,7 @@ UIO_WAIT_INTERVAL_SEC_FLOAT = 1.0
gBrowser : webdriver . Chrome = None
def BrowserChromeStart ( inDriverExePathStr : str = None , inChromeExePathStr : str = None , inExtensionPathList : list = None , inProfilePathStr : str = None , inSaveAsPDFBool = False , inSavefileDefaultDirStr = None ) - > webdriver . Chrome :
""" L+,W+: Выполнить запуск браузера Chrome. Если вы скачали pyOpenRPA вместе с репозиторием, то будет использоваться встроенный браузер Google Chrome. Если установка pyOpenRPA производилась другим способом, то требуется указать расположение браузера Google Chrome и соответствующего WebDriver .
""" L+,W+: Выполнить запуск браузера Chrome. Если вы скачали pyOpenRPA вместе с репозиторием, то будет использоваться встроенный браузер Google Chrome. Если установка pyOpenRPA производилась другим способом, то требуется указать расположение браузера Google Chrome и соответствующего WebDriver
. . code - block : : python
@ -122,6 +122,8 @@ def BrowserChange(inBrowser):
def PageOpen ( inURLStr : str ) :
""" L+,W+: Открыть страницу inURLStr в браузере и дождаться е е загрузки.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
@ -139,6 +141,8 @@ def PageOpen(inURLStr: str):
def PagePrint ( ) :
""" L+,W+: Открыть окно печати браузера.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
@ -156,6 +160,8 @@ def PagePrint():
def PageScrollTo ( inVerticalPxInt = 0 , inHorizontalPxInt = 0 ) :
""" L+,W+: Выполнить прокрутку страницы (по вертикали или по горизонтали)
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
@ -175,6 +181,8 @@ def PageScrollTo(inVerticalPxInt=0, inHorizontalPxInt=0):
def PageJSExecute ( inJSStr , * inArgList ) :
""" L+,W+: Отправить на выполнение на сторону браузера код JavaScript.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
! ВНИМАНИЕ ! Данная функция поддерживает передачу переменных в область кода JavaScript ( * inArgList ) . Обратиться к переданным переменным из JavaScript можно с помощью ключевого слова : arguments [ i ] , где i - это порядковый номер переданной переменной
. . code - block : : python
@ -215,13 +223,15 @@ def BrowserClose():
def UIOSelectorList ( inUIOSelectorStr , inUIO = None ) - > list :
""" L+,W+: Получить список UIO объектов по UIO селектору.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOList = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
@ -250,13 +260,15 @@ def UIOSelectorList(inUIOSelectorStr, inUIO=None) -> list:
def UIOSelectorFirst ( inUIOSelectorStr , inUIO = None ) - > list :
""" L+,W+: Получить UIO объект по UIO селектору.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorFirst ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
@ -275,13 +287,15 @@ def UIOSelectorFirst(inUIOSelectorStr, inUIO=None) -> list:
def UIOTextGet ( inUIO ) - > str :
""" L+,W+: Получить текст UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
lTextStr = UIWeb . UIOTextGet ( inUIO = lUIO )
UIWeb . BrowserClose ( )
@ -296,13 +310,15 @@ def UIOTextGet(inUIO) -> str:
def UIOAttributeGet ( inUIO , inAttributeStr ) - > str :
""" L+,W+: Получить обычный (нестилевой) атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeGet ( inUIO = lUIO , inAttributeStr = " href " )
UIWeb . BrowserClose ( )
@ -319,13 +335,15 @@ def UIOAttributeGet(inUIO, inAttributeStr) -> str:
def UIOAttributeStyleGet ( inUIO , inAttributeStr ) - > str :
""" L+,W+: Получить стилевой атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeStyleGet ( inUIO = lUIO , inAttributeStr = " href " )
UIWeb . BrowserClose ( )
@ -342,13 +360,15 @@ def UIOAttributeStyleGet(inUIO, inAttributeStr) -> str:
def UIOAttributeSet ( inUIO , inAttributeStr , inValue ) :
""" L+,W+: Установить обычный (нестилевой) атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeSet ( inUIO = lUIO , inAttributeStr = " href " , inValue = " https://mail.ru " )
UIWeb . BrowserClose ( )
@ -367,13 +387,15 @@ def UIOAttributeSet(inUIO, inAttributeStr, inValue):
def UIOAttributeRemove ( inUIO , inAttributeStr ) :
""" L+,W+: Удалить обычный (нестилевой) атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeRemove ( lUIO , " href " )
UIWeb . BrowserClose ( )
@ -390,13 +412,15 @@ def UIOAttributeRemove(inUIO, inAttributeStr):
def UIOAttributeStyleSet ( inUIO , inAttributeStr , inValue ) :
""" L+,W+: Установить стилевой атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeStyleSet ( inUIO = lUIO , inAttributeStr = " color " , inValue = " grey " )
UIWeb . BrowserClose ( )
@ -415,13 +439,15 @@ def UIOAttributeStyleSet(inUIO, inAttributeStr, inValue):
def UIOAttributeStyleRemove ( inUIO , inAttributeStr : str ) :
""" L+,W+: Удалить стилевой атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeStyleRemove ( lUIO , " color " )
UIWeb . BrowserClose ( )
@ -438,13 +464,15 @@ def UIOAttributeStyleRemove(inUIO, inAttributeStr:str):
def UIOClick ( inUIO ) :
""" L+,W+: Выполнить нажатие по элементу inUIO.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIO = UIWeb . UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIOClick ( inUIO = lUIO )
UIWeb . BrowserClose ( )
@ -457,13 +485,15 @@ def UIOClick(inUIO):
def UIOSelectorHighlight ( inUIOSelectorStr : str , inIsFirst : bool = False , inDurationSecFloat : float = 3.0 , inColorStr : str = " green " ) :
""" L+,W+: Выполнить подсвечивание UI элемента с селектором inUIOSelectorStr.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
UIWeb . UIOSelectorHighlight ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
@ -513,13 +543,15 @@ def UIOSelectorHighlight(inUIOSelectorStr: str, inIsFirst:bool=False, inDuration
def UIOSelectorClick ( inUIOSelectorStr : str ) :
""" L+,W+: Выполнить нажатие по элементу с селектором inUIOSelectorStr.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
UIWeb . UIOSelectorClick ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
@ -534,6 +566,8 @@ def UIOSelectorClick(inUIOSelectorStr: str):
def UIOSelectorSetValue ( inUIOSelectorStr : str , inValue : str ) :
""" L+,W+: Установить значение элемента с селектором inUIOSelectorStr.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
@ -558,13 +592,15 @@ def UIOSelectorSetValue(inUIOSelectorStr: str, inValue: str):
def UIOSelectorWaitAppear ( inUIOSelectorStr : str , inWaitSecFloat : float = UIO_WAIT_SEC_FLOAT , inWaitIntervalSecFloat : float = UIO_WAIT_INTERVAL_SEC_FLOAT ) :
""" L+,W+: Ожидать появление UI элемента на веб странице (блокирует выполнение потока), заданного по UIO селектору inUIOSelectorStr. Выполнять ожидание на протяжении inWaitSecFloat (по умолчанию 60 сек.). Проверка производится с интервалом inWaitIntervalSecFloat (по умолчанию 1 сек.)
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lAppearUIOList = UIWeb . UIOSelectorWaitAppear ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
@ -590,13 +626,15 @@ def UIOSelectorWaitAppear(inUIOSelectorStr:str, inWaitSecFloat:float=UIO_WAIT_SE
def UIOSelectorWaitDisappear ( inUIOSelectorStr : str , inWaitSecFloat : float = UIO_WAIT_SEC_FLOAT , inWaitIntervalSecFloat : float = UIO_WAIT_INTERVAL_SEC_FLOAT ) :
""" L+,W+: Ожидать исчезновение UI элемента с веб страницы (блокирует выполнение потока), заданного по UIO селектору inUIOSelectorStr. Выполнять ожидание на протяжении inWaitSecFloat (по умолчанию 60 сек.). Проверка производится с интервалом inWaitIntervalSecFloat (по умолчанию 1 сек.)
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
UIWeb . UIOSelectorWaitDisappear ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
@ -628,7 +666,7 @@ def UIOSelectorDetect(inUIOSelectorStr:str) -> str:
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
lUIOSelectorStr = " #grid > div.grid-middle > div.grid__main-col.svelte-2y66pa > div.grid_newscol.grid_newscol__more-pulse.svelte-1yvqfic > div.grid__ccol.svelte-1yvqfic > ul > li:nth-child(5) > div > a "
lUIOSelectorStr = " //*[@id= \ "grid \" ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lUIOSelectorStr = " //*[@id= \ 'grid \' ]/div[2]/div[2]/div[3]/div[1]/ul/li[5]/div/a "
lResultStr = UIWeb . UIOSelectorDetect ( inUIOSelectorStr = lUIOSelectorStr )
: param inUIOSelectorStr : XPATH или CSS селектор UI объекта на web странице . Подсказки по CSS : https : / / devhints . io / css Подсказки по XPath : https : / / devhints . io / xpath
@ -649,6 +687,8 @@ def UIOSelectorDetect(inUIOSelectorStr:str) -> str:
def UIOMouseSearchInit ( ) :
""" L+,W+: Инициализирует процесс поиска UI элемента с помощью мыши. Для прекращения поиска необходимо использовать функцию: UIOMouseSearchReturn
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web
@ -676,6 +716,8 @@ def UIOMouseSearchInit():
def UIOMouseSearchReturn ( ) :
""" L+,W+: Возвращает UIO объект, над которым находится указатель мыши. Предварительно должна быть вызвана функция UIWeb.UIOMouseSearchInit
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
# UIWeb: Взаимодействие с ui web