def getText(self, tag):
     text = StringHelper.join([
         str(t) for t in tag.strings if StringHelper.isNotBlank(
             StringHelper.join(str(t).split(), character=c.BLANK).replace(
                 c.SPACE, c.BLANK))
     ],
                              character=c.NEW_LINE)
     constant = 40
     for i in range(constant):
         if i < constant - 1:
             text = text.replace(
                 GoogleSearchConstants.TOKENT_TEXT_SEPARATOR *
                 (constant - i), c.BLANK)
         else:
             text = text.replace(
                 GoogleSearchConstants.TOKENT_TEXT_SEPARATOR, c.SPACE)
     return text
def getUrl(client, clientMethodConfig, additionalUrl):
    return StringHelper.join(
        [
            ConverterStatic.getValueOrDefault(u, c.BLANK) for u in [
                client.url,
                clientMethodConfig.url,
                additionalUrl
            ]
        ],
        character = c.BLANK
    )
Example #3
0
 def findAllClassByPartialClass(self, partialClass, browser, html=None) :
     # print(f'partialClass: {partialClass}')
     # print(browser.get_attribute('innerHTML'))
     soup = BeautifulSoup(html if ObjectHelper.isNotNone(html) else self.getAttribute('innerHTML', browser), 'html.parser')
     # print(soup.prettify())
     soupElementList = soup.find_all('span', attrs={'class': lambda e: partialClass in e if e else False})
     # print(f'soupElementList: {soupElementList}')
     # from python_helper import ReflectionHelper
     # for soupElement in soupElementList :
     #     print(f'type({soupElement.span}): {type(soupElement.span)}')
         # log.prettyPython(self.findAllClassByPartialClass, 'soupElement', ReflectionHelper.getItNaked(soupElement), logLevel=log.DEBUG)
         # print(soupElement.__dict__)
     # return [self.findByClass(str(StringHelper.join(soupElement.attrs['class'], character=c.SPACE)), browser) for soupElement in soupElementList]
     return [self.findByClass(str(StringHelper.join(soupElement.attrs['class'], character=c.SPACE)), browser) for soupElement in soupElementList]
Example #4
0
def newApp(filePath,
           successStatus=True,
           errorStatus=True,
           failureStatus=True,
           warningStatus=True,
           settingStatus=True,
           statusStatus=True,
           infoStatus=True,
           debugStatus=False,
           wrapperStatus=False,
           testStatus=False,
           logStatus=False):
    globalsInstance = globals.newGlobalsInstance(filePath,
                                                 successStatus=successStatus,
                                                 errorStatus=errorStatus,
                                                 failureStatus=failureStatus,
                                                 settingStatus=settingStatus,
                                                 statusStatus=statusStatus,
                                                 infoStatus=infoStatus,
                                                 debugStatus=debugStatus,
                                                 warningStatus=warningStatus,
                                                 wrapperStatus=wrapperStatus,
                                                 testStatus=testStatus,
                                                 logStatus=logStatus)
    try:
        app = globals.importResource(
            KW_APP,
            resourceModuleName=ConverterStatic.getValueOrDefault(
                globalsInstance.apiName,
                StringHelper.join(EnvironmentHelper.listDirectoryContent(
                    f'{globalsInstance.BASE_API_PATH}')[0].split(c.DOT)[:-1],
                                  character=c.DOT)),
            required=True)
    except Exception as exception:
        apiPath = f'{c.DOT}{EnvironmentHelper.OS_SEPARATOR}{globalsInstance.BASE_API_PATH}{globalsInstance.apiName}.py'
        errorMessage = f"Not possible to load app. Make shure it's name is properlly configured at '{globalsInstance.settingFilePath}' and it's instance is named 'app' at '{apiPath}'"
        log.error(newApp, errorMessage, exception)
        raise exception
    if ObjectHelper.isNone(app):
        app = globals.importResource(
            KW_APP, resourceModuleName=globalsInstance.apiName)
        raise Exception(
            'Not possible to load app. Check logs for more details')
    return app
Example #5
0
def getCompositeModuleName(resourceModuleName, resourceNameList):
    return StringHelper.join([resourceModuleName, *resourceNameList],
                             character=c.DOT)
Example #6
0
def getValue(soupElement, attributeName):
    if ObjectHelper.isNotNone(soupElement) and soupElement.has_attr(
            attributeName):
        value = soupElement[attributeName]
        return value if ObjectHelper.isNotList(value) else StringHelper.join(
            value, character=c.SPACE)
Example #7
0
 def findByClass(self, className, browser) :
     if c.SPACE in className :
         return self.findByCss(StringHelper.join([c.NOTHING, *className.split()], character=c.DOT), browser)
     element = browser.find_element_by_class_name(className)
     time.sleep(BrowserConstants.DEFAULT_WEBDRIVER_DELAY_FRACTION)
     return element
Example #8
0
 def __str__(self):
     return StringHelper.join([
         ReflectionHelper.getName(OuterEnum), c.COLON_SPACE,
         str(self.__enumEqList__)
     ])