@ -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
@ -155,6 +159,8 @@ def PagePrint():
def PageScrollTo ( inVerticalPxInt = 0 , inHorizontalPxInt = 0 ) :
""" L+,W+: Выполнить прокрутку страницы (по вертикали или по горизонтали)
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -174,6 +180,8 @@ def PageScrollTo(inVerticalPxInt=0, inHorizontalPxInt=0):
def PageJSExecute ( inJSStr , * inArgList ) :
""" L+,W+: Отправить на выполнение на сторону браузера код JavaScript.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
! ВНИМАНИЕ ! Данная функция поддерживает передачу переменных в область кода JavaScript ( * inArgList ) . Обратиться к переданным переменным из JavaScript можно с помощью ключевого слова : arguments [ i ] , где i - это порядковый номер переданной переменной
@ -214,6 +222,8 @@ def BrowserClose():
def UIOSelectorList ( inUIOSelectorStr , inUIO = None ) - > list :
""" L+,W+: Получить список UIO объектов по UIO селектору.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -221,7 +231,7 @@ def UIOSelectorList(inUIOSelectorStr, inUIO=None) -> list:
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 ( )
@ -249,6 +259,8 @@ def UIOSelectorList(inUIOSelectorStr, inUIO=None) -> list:
def UIOSelectorFirst ( inUIOSelectorStr , inUIO = None ) - > list :
""" L+,W+: Получить UIO объект по UIO селектору.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -256,7 +268,7 @@ def UIOSelectorFirst(inUIOSelectorStr, inUIO=None) -> list:
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 ( )
@ -274,6 +286,8 @@ def UIOSelectorFirst(inUIOSelectorStr, inUIO=None) -> list:
def UIOTextGet ( inUIO ) - > str :
""" L+,W+: Получить текст UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -281,7 +295,7 @@ def UIOTextGet(inUIO) -> str:
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 ( )
@ -295,6 +309,8 @@ def UIOTextGet(inUIO) -> str:
def UIOAttributeGet ( inUIO , inAttributeStr ) - > str :
""" L+,W+: Получить обычный (нестилевой) атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -302,7 +318,7 @@ def UIOAttributeGet(inUIO, inAttributeStr) -> str:
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 ( )
@ -318,6 +334,8 @@ def UIOAttributeGet(inUIO, inAttributeStr) -> str:
def UIOAttributeStyleGet ( inUIO , inAttributeStr ) - > str :
""" L+,W+: Получить стилевой атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -325,7 +343,7 @@ def UIOAttributeStyleGet(inUIO, inAttributeStr) -> str:
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 ( )
@ -341,6 +359,8 @@ def UIOAttributeStyleGet(inUIO, inAttributeStr) -> str:
def UIOAttributeSet ( inUIO , inAttributeStr , inValue ) :
""" L+,W+: Установить обычный (нестилевой) атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -348,7 +368,7 @@ def UIOAttributeSet(inUIO, inAttributeStr, inValue):
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 ( )
@ -366,6 +386,8 @@ def UIOAttributeSet(inUIO, inAttributeStr, inValue):
def UIOAttributeRemove ( inUIO , inAttributeStr ) :
""" L+,W+: Удалить обычный (нестилевой) атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -373,7 +395,7 @@ def UIOAttributeRemove(inUIO, inAttributeStr):
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 ( )
@ -389,6 +411,8 @@ def UIOAttributeRemove(inUIO, inAttributeStr):
def UIOAttributeStyleSet ( inUIO , inAttributeStr , inValue ) :
""" L+,W+: Установить стилевой атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -396,7 +420,7 @@ def UIOAttributeStyleSet(inUIO, inAttributeStr, inValue):
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 ( )
@ -414,6 +438,8 @@ def UIOAttributeStyleSet(inUIO, inAttributeStr, inValue):
def UIOAttributeStyleRemove ( inUIO , inAttributeStr : str ) :
""" L+,W+: Удалить стилевой атрибут у UI элемента.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -421,7 +447,7 @@ def UIOAttributeStyleRemove(inUIO, inAttributeStr:str):
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 ( )
@ -437,6 +463,8 @@ def UIOAttributeStyleRemove(inUIO, inAttributeStr:str):
def UIOClick ( inUIO ) :
""" L+,W+: Выполнить нажатие по элементу inUIO.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -444,7 +472,7 @@ def UIOClick(inUIO):
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 ( )
@ -456,6 +484,8 @@ 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
@ -463,7 +493,7 @@ def UIOSelectorHighlight(inUIOSelectorStr: str, inIsFirst:bool=False, inDuration
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 ( )
@ -512,6 +542,8 @@ def UIOSelectorHighlight(inUIOSelectorStr: str, inIsFirst:bool=False, inDuration
def UIOSelectorClick ( inUIOSelectorStr : str ) :
""" L+,W+: Выполнить нажатие по элементу с селектором inUIOSelectorStr.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -519,7 +551,7 @@ def UIOSelectorClick(inUIOSelectorStr: str):
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 ( )
@ -533,6 +565,8 @@ def UIOSelectorClick(inUIOSelectorStr: str):
def UIOSelectorSetValue ( inUIOSelectorStr : str , inValue : str ) :
""" L+,W+: Установить значение элемента с селектором inUIOSelectorStr.
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -557,14 +591,16 @@ 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 ( )
@ -589,14 +625,16 @@ 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
@ -648,6 +686,8 @@ def UIOSelectorDetect(inUIOSelectorStr:str) -> str:
def UIOMouseSearchInit ( ) :
""" L+,W+: Инициализирует процесс поиска UI элемента с помощью мыши. Для прекращения поиска необходимо использовать функцию: UIOMouseSearchReturn
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python
@ -675,6 +715,8 @@ def UIOMouseSearchInit():
def UIOMouseSearchReturn ( ) :
""" L+,W+: Возвращает UIO объект, над которым находится указатель мыши. Предварительно должна быть вызвана функция UIWeb.UIOMouseSearchInit
! ВНИМАНИЕ ! Для работы необходимо проинициализировать webdriver
. . code - block : : python