@ -15,17 +15,24 @@ 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 ) - > webdriver . Chrome :
""" _summary_
""" L+,W+: Выполнить запуск браузера Chrome. Если вы скачали pyOpenRPA вместе с репозиторием, то будет использоваться встроенный браузер Google Chrome. Если установка pyOpenRPA производилась другим способом, то требуется указать расположение браузера Google Chrome и соответствующего WebDriver.
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . BrowserClose ( )
: param inDriverExePathStr : _description_ , defaults to None
: type inDriverExePathStr : str , optional
: param inChromeExePathStr : _description_ , defaults to None
: type inChromeExePathStr : str , optional
: param inExtensionPathList : _description_ , defaults to None
: type inExtensionPathList : list , optional
: param inProfilePathStr : _description_ , defaults to None
: type inProfilePathStr : str , optional
: return : _description_
: param inDriverExePathStr : _description_ , по умолчанию None
: type inDriverExePathStr : str , опционально
: param inChromeExePathStr : _description_ , по умолчанию None
: type inChromeExePathStr : str , опционально
: param inExtensionPathList : _description_ , по умолчанию None
: type inExtensionPathList : list , опционально
: param inProfilePathStr : _description_ , по умолчанию None
: type inProfilePathStr : str , опционально
: return : Объект браузера Google Chrome
: rtype : webdriver . Chrome
"""
global gBrowser
@ -65,19 +72,38 @@ def BrowserChromeStart(inDriverExePathStr:str = None, inChromeExePathStr:str = N
return gBrowser
def BrowserChange ( inBrowser ) :
""" _summary_
""" L+,W+: Выполнить смену активного браузера (при необходимости).
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
lBrowser1 = UIWeb . BrowserChromeStart ( )
UIWeb . BrowserChange ( inBrowser = None )
lBrowser2 = UIWeb . BrowserChromeStart ( )
UIWeb . BrowserClose ( )
UIWeb . BrowserChange ( inBrowser = lBrowser1 )
UIWeb . BrowserClose ( )
: param inBrowser : _description_
: type inBrowser : _type_
: param inBrowser : Объект браузера
: type inBrowser : webdriver. Chrome
"""
global gBrowser
gBrowser = inBrowser
def PageOpen ( inURLStr ) :
""" _summary_
def PageOpen ( inURLStr : str ) :
""" L+,W+: Открыть страницу inURLStr в браузере и дождаться е е загрузки.
. . code - block : : python
: param inURLStr : _description_
: type inURLStr : _type_
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
UIWeb . BrowserClose ( )
: param inURLStr : URL адрес страницы
: type inURLStr : str
"""
global gBrowser
if gBrowser is not None : gBrowser . get ( inURLStr )
@ -85,6 +111,15 @@ def PageOpen(inURLStr):
def PageScrollTo ( inVerticalPxInt = 0 , inHorizontalPxInt = 0 ) :
""" _summary_
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
UIWeb . PageJSExecute ( alert ( ' arguments[0]); " , " hello world! " )
UIWeb . BrowserClose ( )
: param inVerticalPxInt : _description_ , defaults to 0
: type inVerticalPxInt : int , optional
: param inHorizontalPxInt : _description_ , defaults to 0
@ -93,31 +128,63 @@ def PageScrollTo(inVerticalPxInt=0, inHorizontalPxInt=0):
PageJSExecute ( inJSStr = f " scroll( { inHorizontalPxInt } , { inVerticalPxInt } ) " )
def PageJSExecute ( inJSStr , * inArgList ) :
""" _summary_
""" L+,W+: Отправить на выполнение на сторону браузера код JavaScript.
! ВНИМАНИЕ ! Данная функция поддерживает передачу переменных в область кода JavaScript ( * inArgList ) . Обратиться к переданным переменным из JavaScript можно с помощью ключевого слова : arguments [ i ] , где i - это порядковый номер переданной переменной
: param inJSStr : _description_
: type inJSStr : _type_
: return : _description_
: rtype : _type_
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
UIWeb . PageJSExecute ( alert ( ' arguments[0]); " , " hello world! " )
UIWeb . BrowserClose ( )
: param inJSStr : Код JavaScript , отправляемый на сторону браузера
: type inJSStr : str
: param * inArgList : Перечисление аргументов , отправляемых на сторону браузера
: type * inArgList : str
: return : Результат отработки кода JavaScript , если он заканчивался оператором " return "
: rtype : str | int | bool | float
"""
# arguments[0], arguments[1] etc
global gBrowser
if gBrowser is not None : return gBrowser . execute_script ( inJSStr , * inArgList )
def BrowserClose ( ) :
""" _summary_
""" L+,W+: Закрыть браузер
. . code - block : : python
# UIWeb: Взаимодействие с ui web
from pyOpenRPA . Robot import UIWeb
UIWeb . BrowserChromeStart ( )
UIWeb . PageOpen ( " https://mail.ru " )
UIWeb . BrowserClose ( )
"""
global gBrowser
if gBrowser is not None : gBrowser . quit ( )
def UIOSelectorList ( inUIOSelectorStr , inUIO = None ) - > list :
""" _summary_
""" L+,W+: Получить список UIO объектов по UIO селектору.
: param inUIOSelectorStr : _description_
: type inUIOSelectorStr : _type_
: param inUIO : _description_ , defaults to None
: type inUIO : _type_ , optional
: return : _description_
. . 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 "
lUIOList = UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
: param inUIOSelectorStr : XPATH или CSS селектор UI объекта на web странице . Подсказки по CSS : https : / / devhints . io / css Подсказки по XPath : https : / / devhints . io / xpath
: type inUIOSelectorStr : str
: param inUIO : Объект UIO , от которого выполнить поиск UIO объектов по селектору , по умолчанию None
: type inUIO : WebElement , опционально
: return : Список UIO объектов
: rtype : list
"""
lResultList = [ ]
@ -136,14 +203,24 @@ def UIOSelectorList(inUIOSelectorStr, inUIO=None) -> list:
return lResultList
def UIOSelectorFirst ( inUIOSelectorStr , inUIO = None ) - > list :
""" _summary_
""" L+,W+: Получить UIO объект по UIO селектору.
: param inUIOSelectorStr : _description_
: type inUIOSelectorStr : _type_
: param inUIO : _description_ , defaults to None
: type inUIO : _type_ , optional
: return : _description_
: rtype : list
. . 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 "
lUIO = UIOSelectorFirst ( inUIOSelectorStr = lUIOSelectorStr )
UIWeb . BrowserClose ( )
: param inUIOSelectorStr : XPATH или CSS селектор UI объекта на web странице . Подсказки по CSS : https : / / devhints . io / css Подсказки по XPath : https : / / devhints . io / xpath
: type inUIOSelectorStr : str
: param inUIO : Объект UIO , от которого выполнить поиск UIO объектов по селектору , по умолчанию None
: type inUIO : WebElement , опционально
: return : Первый подходящий UIO объект
: rtype : UIO объект
"""
lResult = None
lUIOList = UIOSelectorList ( inUIOSelectorStr = inUIOSelectorStr , inUIO = inUIO )
@ -151,35 +228,68 @@ def UIOSelectorFirst(inUIOSelectorStr, inUIO=None) -> list:
return lResult
def UIOTextGet ( inUIO ) - > str :
""" _summary_
""" L+,W+: Получить текст UI элемента.
. . code - block : : python
: param inUIO : _description_
: type inUIO : _type_
: return : _description_
# 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 "
lUIO = UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
lTextStr = UIWeb . UIOTextGet ( inUIO = lUIO )
UIWeb . BrowserClose ( )
: param inUIO : UIO элемент . Получить е г о можно с помощью функций UIOSelectorList или UIOSelectorFirst
: type inUIO : WebElement
: return : Текст UI элемента
: rtype : str
"""
return inUIO . text
def UIOAttributeGet ( inUIO , inAttributeStr ) - > str :
""" _summary_
""" L+,W+: Получить обычный (нестилевой) атрибут у UI элемента.
. . code - block : : python
: param inUIO : _description_
: type inUIO : _type_
: param inAttributeStr : _description_
: type inAttributeStr : _type_
: return : _description_
# 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 "
lUIO = UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeGet ( inUIO = lUIO , inAttributeStr = " href " )
UIWeb . BrowserClose ( )
: param inUIO : UIO элемент . Получить е г о можно с помощью функций UIOSelectorList или UIOSelectorFirst
: type inUIO : WebElement
: param inAttributeStr : Наименование обычного ( нестилевого ) атрибута
: type inAttributeStr : str
: return : Значение обычного ( нестилевого ) атрибута
: rtype : str
"""
return inUIO . get_attribute ( inAttributeStr )
def UIOAttributeStyleGet ( inUIO , inAttributeStr ) - > str :
""" _summary_
""" L+,W+: Получить стилевой атрибут у UI элемента.
. . code - block : : python
: param inUIO : _description_
: type inUIO : _type_
: param inAttributeStr : _description_
: type inAttributeStr : _type_
: return : _description_
# 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 "
lUIO = UIOSelectorList ( inUIOSelectorStr = lUIOSelectorStr ) [ 0 ]
UIWeb . UIOAttributeStyleGet ( inUIO = lUIO , inAttributeStr = " href " )
UIWeb . BrowserClose ( )
: param inUIO : UIO элемент . Получить е г о можно с помощью функций UIOSelectorList или UIOSelectorFirst
: type inUIO : WebElement
: param inAttributeStr : Наименование стилевого атрибута
: type inAttributeStr : str
: return : Значение стилевого атрибута
: rtype : str
"""
return inUIO . value_of_css_property ( inAttributeStr )