Example #1
0
class GuineenewsArchivesPage(BasePage):

    mylg = MyLogger ()
    logger = mylg.customLogger ( logging.DEBUG )

    def __init__(self, driver):
        super().__init__(driver)
        self.driver = driver

    calendar_table_id = "wp-calendar"
    calendar_day_having_archives = "//table[@id='wp-calendar']//child::a[contains(@aria-label, 'Publications')]"
    previous_month = "//nav[@class='wp-calendar-nav']/span[@class='wp-calendar-nav-prev']/a"
    next_month = "//nav[@class='wp-calendar-nav']/span[@class='wp-calendar-nav-next']/a"

    def select_archives(self, day):
        day_index = (int(day)-1)
        element = self.getListElement(myLocator=self.calendar_day_having_archives,locatorType="xpath",elementPosition=day_index)
        #self.scrollElementIntoView(element)
        self.arrow_down_up ( 2, "up" )
        if self.isListElementClickable(element=element):
            self.clickListElement ( myLocator=self.calendar_day_having_archives, locatorType="xpath",
                                    elementPosition=day_index )
        else:
            self.arrow_down_up ( 2, "up" )
            self.clickListElement ( myLocator=self.calendar_day_having_archives, locatorType="xpath",
                                    elementPosition=day_index )

    def click_previous_month(self):
        self.clickElement(myLocator=self.previous_month,locatorType="xpath")

    def click_next_month(self):
        self.clickElement(myLocator=self.next_month,locatorType="xpath")
Example #2
0
    def __init__(self, driver):
        self.driver = driver
        self.logger = MyLogger(self.__class__.__name__).getlogger()  # 获取日志
        self.baseView = BaseApi(self.driver)
        self.launchPath = FilePath().androidLaunchPage
        self.readYaml = ReadYaml()
        self.myself = MySelf(driver)

        self.launchPage = self.readYaml.getStream(self.launchPath)
        self.launchEle = self.launchPage.get("launch", False)
        self.checkLoginEle = self.launchPage.get("ckeckLogin",
                                                 False)  # 登录成功校验元素

        self.mobileLoginButton = self.readYaml.getNode(self.launchEle,
                                                       "mobileLoginButton")
        self.aaccount = self.readYaml.getNode(self.launchEle, "aaccount")
        self.passwd = self.readYaml.getNode(self.launchEle, "passwd")
        self.submitButton = self.readYaml.getNode(self.launchEle,
                                                  "submitButton")
        self.forgetPasswd = self.readYaml.getNode(self.launchEle,
                                                  "forgetPasswd")

        self.androidUserInfoPage = self.readYaml.getStream(
            FilePath.androidUserInfoPage)
        self.settingPage = self.readYaml.getStream(FilePath.androidSettingPage)

        self.settingButton = self.readYaml.getNode(self.androidUserInfoPage,
                                                   "settingButton")
        self.loginOutButton = self.readYaml.getNode(self.settingPage,
                                                    "loginOutButton")
        self.affirmLoginoutButton = self.readYaml.getNode(
            self.settingPage, "affirmLoginoutButton")
Example #3
0
def setUpClass(context):
    driver = MyDriverFactory.getDriverManager(Browsers.chrome).getDriver()
    context.driver = driver
    lg = MyLogger()
    context.logger = lg.customLogger(logging.DEBUG)
    yield context.driver
    if context.driver is not None:
        context.driver.close()
class JeuneAfriqueStartPage(BasePage):

    iframe = "//iframe[@name='__cmpLocator']"
    cookies_div = "//div[@id='main']"
    btn_accepter_cookies = "//button[@id='scmp-btn-allow']"  #"scmp-btn-allow"
    menu = "main-menu-nav"
    btn_voir_tous_les_articles = "//div[@id='container__ribbon-cta']"
    btn_les_pays = "//a[@class='header-nav-left open-country-selection']"
    btn_politique = "//nav['main-navigation']//a[contains(@data-label, 'Politique')]"
    #btn_politique   = "//a[contains(@data-label, 'Politique')]" #"//a[contains(@data-label, 'dropdown-menu Politique')]" #"//a[contains(@href,'/rubriques/politique/')]"
    btn_economie = "//a[contains(@data-label, 'Économie')]"
    btn_societe = "//a[contains(@data-label, 'Société')]"  #"//a[contains(@data-category,'menu-main-navigation Menu Principal par défaut') and contains(@href,'/rubriques/societe/')]"
    btn_culture = "//a[contains(@data-label, 'Culture')]"  #"//a[contains(@data-category,'menu-main-navigation Menu Principal par défaut') and contains(@href,'/rubriques/culture/')]"
    btn_sport = "//a[contains(@data-label, 'Sport')]"  #"//a[contains(@data-category,'menu-main-navigation Menu Principal par défaut') and contains(@href,'/rubriques/sport/')]"
    btn_lifestyle = "//a[contains(@data-label, 'Lifestyle')]"  #"//a[contains(@data-category,'menu-main-navigation Menu Principal par défaut') and contains(@href,'/campagnes-luxe/')]"

    myLg = MyLogger()
    logger = myLg.customLogger(logging.DEBUG)

    def __init__(self, driver):
        super().__init__(driver)

    def accept_cookies(self):
        try:
            print("current_handle............")
            print(self.driver.current_window_handle)
            handles = self.driver.window_handles
            #iframe = self.getElement(self.iframe, "xpath")
            #self.driver.switch_to.frame(self.iframe)
            #self.driver.switch_to.active_element ()
            #self.waitForElementToBe(self.btn_accepter_cookies,"id", 10, 1)
            #if self.isClickable(self.btn_accepter_cookies,"xpath"):
            self.clickElement(self.btn_accepter_cookies, "xpath")
            #self.clickElement(self.btn_voir_tous_les_articles,"xpath")
            #self.driver.switch_to.default_content ()
        except Exception as error:
            self.logger.error(error)

    def go_to_rubrique(self, rubrique, locatorType="xpath"):
        if rubrique == "Politique":
            self.clickElement(self.btn_politique, "xpath")
            #self.waitForElementToBe(self.menu, "id")

        if rubrique == "Economie":
            self.clickElement(self.btn_economie, "xpath")

        if rubrique == "Societe":
            self.clickElement(self.btn_societe, "xpath")

        if rubrique == "Culture":
            self.clickElement(self.btn_culture, "xpath")

        if rubrique == "Lifestyle":
            self.clickElement(self.btn_lifestyle, "xpath")

        if rubrique == "Sport":
            self.clickElement(self.btn_sport, "xpath")
class GuineenewsSearchPage(BasePage):

    mylg = MyLogger()
    logger = mylg.customLogger(logging.DEBUG)

    pages = "//span[contains(@class, 'pages') and contains(text(), 'Page') and contains(text(), 'sur') ]"
    next_page_icon = "//div['page-nav td-pb-padding-side']/child::a/i[@class='td-icon-menu-right']/parent::a"
    previous_page_icon = "//div['page-nav td-pb-padding-side']/child::a/i[@class='td-icon-menu-left']/parent::a"

    last_page = "//div['page-nav td-pb-padding-side']/child::a[@class='last']"
    result_list = "//div[@class='td-ss-main-content']//child::h3[@class='entry-title td-module-title']/a"

    logo = "//div[@class='td-main-menu-logo td-logo-in-header td-logo-sticky']/a[@class='td-main-logo']"

    def __init__(self, driver):
        super().__init__(driver)
        self.driver = driver

    def is_more_than_one_result_page(self):
        if self.isVisible(self.pages, "xpath") is not None:
            return True
        else:
            return False

    def paginate_to_next_Page(self):
        element = self.getElement(self.next_page_icon, "xpath")
        self.scrollElementIntoView(element)
        sleep(2)
        self.clickElement(element=element)

    def click_a_random_search_result(self):

        elements = self.getElements(self.result_list, "xpath")
        if len(elements) > 0:
            random_index = random.randint(0, (len(elements) - 1))
            element = self.getListElement(self.result_list, "xpath",
                                          random_index)
            self.scrollElementIntoView(element)
            sleep(1)
            self.clickElement(element=element)

    def click_a_specific_search_result(self, position):

        elements = self.getElements(self.result_list, "xpath")
        if len(elements) > 0:
            if position == "last":
                article_index = int(len(elements)) - 1
            else:
                article_index = int(position)
            element = self.getListElement(self.result_list, "xpath",
                                          article_index)
            self.scrollElementIntoView(element)
            sleep(1)
            self.clickElement(element=element)

    def paginate_to_last_result_page(self):
        self.clickElement(myLocator=self.last_page, locatorType="xpath")
Example #6
0
 def __init__(self):
     self.mylogger = MyLogger(self.__class__.__name__).getlogger()
     self.read = ReadYaml()
     btclassDB = self.read.getStream(FilePath.dbConfigPath)["DB_data"]
     self.host = btclassDB["host"]
     self.username = btclassDB["username"]
     self.password = btclassDB["password"]
     self.port = btclassDB["port"]
     self.basename = btclassDB["basename"]
     self.conn = None
Example #7
0
class GuineenewsMenu(BasePage):

    mylg = MyLogger()
    logger = mylg.customLogger(logging.DEBUG)

    logo = "//div[@class='td-main-menu-logo td-logo-in-header td-logo-sticky']/a[@class='td-main-logo']"

    # menu_acceuil                = "//ul[@id='menu-mainmenu-1']/li[1]/a"
    # menu_news                   = "//ul[@id='menu-mainmenu-1']/li[2]/a"
    # menu_grands_dossiers        = "//ul[@id='menu-mainmenu-1']/li[3]/a"
    # menu_interviews             = "//ul[@id='menu-mainmenu-1']/li[4]/a"
    # menu_publireportage         = "//ul[@id='menu-mainmenu-1']/li[5]/a"
    # menu_region                 = "//ul[@id='menu-mainmenu-1']/li[6]/a"
    # menu_sport                  = "//ul[@id='menu-mainmenu-1']/li[7]/a"
    # menu_le_monde               = "//ul[@id='menu-mainmenu-1']/li[8]/a"

    sub_menus_news = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a"
    sub_menus_grandossiers = "//ul[@id='menu-mainmenu-1']/li[3]/ul//child::h3[@class='entry-title td-module-title']/a"
    sub_menus_publireportage = "//ul[@id='menu-mainmenu-1']/li[5]/ul//child::h3[@class='entry-title td-module-title']/a"
    sub_menus_region = "//ul[@id='menu-mainmenu-1']/li[6]/ul//child::div[@class='block-mega-child-cats']/a"

    # sub_menu_tous               = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[1]"
    # sub_menu_art_et_culture     = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[2]"
    # sub_menu_faits_divers       = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[4]"
    # sub_menu_economie           = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[3]"
    # sub_menu_politique          = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[5]"
    # sub_menu_revue_de_presse    = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[6]"
    # sub_menu_societe            = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[7]"

    search_icon = 'td-header-search-button'  #"//a[@id='td-header-search-button']"
    search_field = 'td-header-search'  #"//input[@id='td-header-search']"
    search_btn = 'td-header-search-top'  #"//input[@id='td-header-search-top']"

    articles_filter = "//div[contains(@class,'td-subcat-more') and contains(text(), 'Dernier')]"
    filter_ul = "//div[@class='td-pulldown-filter-display-option']//child::ul[@class='td-pulldown-filter-list']"
    filter_lis = "//div[@class='td-pulldown-filter-display-option']//child::li[@class='td-pulldown-filter-item']"

    filter_result_list = "//div[@class='td-ss-main-content']//h3/a"

    def __init__(self, driver):
        super().__init__(driver)
        self.driver = driver

    def get_Menu_xpath_locator(self, menu):
        return "//ul[@id='menu-mainmenu-1']//child::a[contains(text(), '{}')]".format(
            str(menu))

    def get_sub_Menu_xpath_locator(self, menu, sub_menu):
        return "//ul[@id='menu-mainmenu-1']//child::a[contains(text(), '{}')]//following-sibling::ul//" \
               "child::div[@class='block-mega-child-cats']/a[contains(text(), '{}')]".format(menu, sub_menu)

    def go_to_rubrique(self, rubrique, locatorType="xpath"):

        myLocator = self.get_Menu_xpath_locator(rubrique)
        self.clickElement(myLocator, "xpath")
        # if rubrique == Menu.Acceuil:
        #     self.clickElement ( self.menu_acceuil, "xpath" )
        #     # self.waitForElementToBe(self.menu, "id")
        #
        # if rubrique == Menu.News:
        #     self.clickElement ( self.menu_news, "xpath" )
        #
        # if rubrique == Menu.Grands_Dossiers:
        #     self.clickElement ( self.menu_grands_dossiers, "xpath" )
        #
        # if rubrique == Menu.Interviews:
        #     self.clickElement ( self.menu_interviews, "xpath" )
        #
        # if rubrique == Menu.Publireportage:
        #     self.clickElement ( self.menu_publireportage, "xpath" )
        #
        # if rubrique == Menu.Region:
        #     self.clickElement ( self.menu_region, "xpath" )
        #
        # if rubrique == Menu.Sport:
        #     self.clickElement ( self.menu_sport, "xpath" )
        #
        # if rubrique == Menu.Le_Monde:
        #     self.clickElement ( self.menu_le_monde, "xpath" )

    def move_mouse_on_main_menu_element(self, menu, locatorType="xpath"):

        myLocator = self.get_Menu_xpath_locator(menu)
        #self.logger.warning(myLocator)
        self.moveMouseOnElement(myLocator, locatorType)

        # if menu_locator == Menu.News:
        #     self.moveMouseOnElement(self.menu_news,locatorType)
        #
        # if menu_locator == Menu.Grands_Dossiers:
        #     self.moveMouseOnElement(self.menu_grands_dossiers,locatorType)
        #
        # if menu_locator == Menu.Publireportage:
        #     self.moveMouseOnElement(self.menu_publireportage,locatorType)
        #
        # if menu_locator == Menu.Region:
        #     self.moveMouseOnElement(self.menu_region,locatorType)
        #sleep(2)

    def go_to_sub_menu(self, menu, sub_menu, locatorType="xpath"):

        self.move_mouse_on(menu, locatorType)
        #if menu == Menu.Region:
        #   self.move_mouse_on ( Menu.Region, locatorType )
        sleep(1)
        myLocator = self.get_sub_Menu_xpath_locator(Menu.News, sub_menu)
        #self.logger.info(myLocator)
        element = self.waitForElementToBe(myLocator)
        self.clickElement(element=element)

        # if sub_menu == Menu.Tous:
        #     element = self.waitForElementToBe(self.sub_menu_tous)
        #     self.clickElement(element=element)
        #     # self.waitForElementToBe(self.menu, "id")
        #
        # if sub_menu == Menu.Art_et_Culture:
        #     element = self.waitForElementToBe (self.sub_menu_art_et_culture)
        #     self.clickElement(element=element)
        #
        # if sub_menu == Menu.Economie:
        #     element = self.waitForElementToBe (self.sub_menu_economie, locatorType=locatorType, event="visible")
        #     self.clickElement ( element=element )
        #     #self.clickElement ( self.sub_menu_economie, locatorType )
        #
        # if sub_menu == Menu.Faits_Divers:
        #     element = self.waitForElementToBe (self.sub_menu_faits_divers)
        #     self.clickElement (element=element)
        #
        # if sub_menu == Menu.Politique:
        #     element = self.waitForElementToBe ( self.sub_menu_politique )
        #     self.clickElement ( element=element )
        #
        # if sub_menu == Menu.Societe:
        #     element = self.waitForElementToBe ( self.sub_menu_societe )
        #     self.clickElement ( element=element )
        #     #self.clickElement ( self.sub_menu_societe )
        #
        # if sub_menu == Menu.Revue_de_presse:
        #     element = self.waitForElementToBe ( self.sub_menu_revue_de_presse )
        #     self.clickElement ( element=element )

        #if sub_rubrique == "Le_monde":
        #   self.clickElement ( self.menu_le_monde, "xpath" )

    def click_random_sub_article_in(self, menu, locatorType="xpath"):
        #try:
        if menu == Menu.Region:
            sub_menus = self.sub_menus_region
            #main_menu = self.menu_region
        if menu == Menu.Publireportage:
            sub_menus = self.sub_menus_publireportage
            #main_menu = self.menu_publireportage
        if menu == Menu.Grands_Dossiers:
            #self.logger.warning(self.sub_menus_grandossiers)
            sub_menus = self.sub_menus_grandossiers
            #main_menu = self.menu_grands_dossiers

        self.move_mouse_on_main_menu_element(menu)
        #sleep(2)
        #if menu == "menu_grands_dossiers":
        articles = self.getElements(sub_menus, "xpath")
        if len(articles) > 0:
            random_index = random.randint(1, (len(articles) - 1))
            #self.logger.warning(str(len(articles)))
            self.clickListElement(myLocator=sub_menus,
                                  locatorType=locatorType,
                                  elementPosition=random_index)

    # except Exception as error:
    #     self.logger.error(error)

    def move_mouse_on(self, menu_titel, locatorType="xpath"):

        myLocator = self.get_Menu_xpath_locator(menu_titel)
        self.moveMouseOnElement(myLocator, locatorType)

        # if menu_locator == Menu.News:
        #     self.moveMouseOnElement(self.menu_news,locatorType)
        #
        # if menu_locator == Menu.Politique:
        #     self.moveMouseOnElement(self.sub_menu_politique,locatorType)
        #
        # if menu_locator == Menu.Revue_de_presse:
        #     self.moveMouseOnElement(self.sub_menu_revue_de_presse,locatorType)
        #
        # if menu_locator == Menu.Societe:
        #     self.moveMouseOnElement(self.sub_menu_societe,locatorType)

    def search(self, txt):
        self.clickElement(self.search_icon)
        searchField_input = self.waitForElementToBe(self.search_field,
                                                    "id",
                                                    event="visible")
        self.clearField(element=searchField_input)
        self.typeTextInField(text=txt, element=searchField_input)
        self.clickElement(self.search_btn, "id")

    def select_from_derniers_drop_down_Menu(self, criteria):

        self.moveMouseOnElement(self.articles_filter, "xpath")
        sleep(3)
        filter_elements = self.getElements(self.filter_lis,
                                           locatorType="xpath")

        if (criteria == Menu.Filter_cretaria_vedette):
            #self.clickListElement(elementPosition=1, element=filter_elements)
            self.clickListElement(elementPosition=1, elements=filter_elements)

        if (criteria == Menu.Filter_cretaria_plus_populaire):
            self.clickListElement(elementPosition=2, elements=filter_elements)

        if (criteria == Menu.Filter_cretaria_7_j_populaire):
            self.clickListElement(elementPosition=3, elements=filter_elements)

        if (criteria == Menu.Filter_cretaria_mieux_notes):
            self.clickListElement(elementPosition=4, elements=filter_elements)

        if (criteria == Menu.Filter_cretaria_hasard):
            self.clickListElement(elementPosition=5, elements=filter_elements)

    def click_logo(self):
        self.clickElement(myLocator=self.logo, locatorType="xpath")
Example #8
0
"""
This module defines the basic packet class.

The packet class is extracted from the IP object of `scapy.layers.inet.IP`.
"""

from utils.logger import MyLogger
from scapy.layers.inet import IP

logger = MyLogger('BasicPacket')
# Please don't put logger into the class


class BasicPacket(object):
    """
    The basic packet class.

    Parameters
    ----------
    packet_id : int
        The global ID of the packet.
    timestamp : int
        The arrival time of the packet. (in microsecond)
    ip_packet : scapy.layers.inet.IP
        The packet extracted from `scapy`.

    Attributes
    ----------
    packet_id : int
        The global ID of the packet.
    timestamp : int
Example #9
0
 def __init__(self, driver):
     self.driver = driver
     self.logger = MyLogger(self.__class__.__name__).getlogger()
 def __init__(self, flow_timeout):
     self.current_flows = {}
     self.finished_flows = []
     self.flow_timeout = flow_timeout
     self.logger = MyLogger('FlowGenerator')
Example #11
0
class SeleniumDriverWrapper:

    mylogger = MyLogger ()
    logger = mylogger.customLogger ( logging.DEBUG )

    logger = None
    def __init__(self, driver):
        self.driver = driver


    def getByType(self, locatorType):
        #webdriver.Chrome.
        wb=None
        try:
            if locatorType.upper() == "ID":
              return By.ID
            if locatorType.upper() == "NAME":
              return By.NAME
            if locatorType.upper() == "CLASS_NAME":
              return By.CLASS_NAME
            if locatorType.upper() == "TAG_NAME":
              return By.TAG_NAME
            if locatorType.upper() == "LINK_TEXT":
              return By.LINK_TEXT
            if locatorType.upper() == "PARTIAL_LINK_TEXT":
              return By.PARTIAL_LINK_TEXT
            if locatorType.upper() == "XPATH":
              return By.XPATH
        except Exception as error:
            self.logger.error(error)

    def getElement(self, myLocator, locatorType="id"):
        """
        :type locator: string
        """
        byType=None
        try:
            byType = self.getByType(locatorType)
            #self.logger.info(byType)
            el = self.driver.find_element(byType, myLocator)
            return el
        except (Exception, NoSuchElementException) as error:
            self.logger.error(error)

    def getElements(self, myLocator, locatorType="id"):
        """
        :type locator: string
        """
        try:
            byType = self.getByType(locatorType)
            el = self.driver.find_elements(byType, myLocator)
            return el
        except (Exception, NoSuchElementException) as error:
            self.logger.error(error)

    def clickElement(self, myLocator="None", locatorType="id", element=None):
        try:
            if element is None:
                element = self.getElement(myLocator, locatorType)
            element.click()
        except ElementNotVisibleException as error:
            self.logger.error(str(error))

    def typeTextInField(self, myLocator='', locatorType="id",text='', element=None):
        try:
            if element is None:
                element = self.getElement(myLocator, locatorType)
            element.send_keys(text)
        except ElementNotVisibleException as error:
            self.logger.error(error)

    def clearField(self, myLocator='', locatorType='id',element=None):
        try:
            if element is None:
                element = self.getElement(myLocator, locatorType)
            element.clear()
        except ElementNotVisibleException as error:
            self.logger.error(error)

    def getElementText(self, myLocator="", locatorType="", element=None):
        try:
            if element is None:
                    element = self.getElement(myLocator, locatorType)
            return element.text
        except ElementNotVisibleException as error:
            self.logger.error(error)

    def getPageTitle(self):
        try:
            return self.driver.title
        except Exception as error:
            self.logger.error(error)

    def getCurrentUrl(self):
        try:
            return  self.driver.current_url
        except Exception as e:
            self.logger.error(e.__str__())

    def getTagName(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).tag_name
        except ElementNotVisibleException as error:
            self.logger.error(error)

    def isEnabled(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).is_enabled()
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def isVisible(self, myLocator="", locatorType="xpath", element=None):
        is_visible=True
        try:
            if element is None:
                element = self.getElement(myLocator, locatorType)
            is_visible=element.is_displayed()
            #self.logger.warning(f"checking element visibility {is_visible}")
            return is_visible
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def isSelected(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).is_selected()
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    #def isEmpty(self, myLocator, locatorType):
     #   self.getElement(myLocator, locatorType).

    def isChecked(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).get_attribute("checked")
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def isFocused(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).get_attribute("focused")
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def isClickable(self, myLocator="", locatorType="xpath", element=None):
        is_clickable=True
        try:
            if element is None:
                byType = self.getByType(locatorType)
                element = self.getElement(myLocator, byType)
            is_clickable = element.get_attribute("clickable")
            webdriver.Chrome.find_element( By.id, myLocator ).get
            self.logger.warning ( f"checking element clickbility  {is_clickable}" )
            return is_clickable
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def selectElementDropDownElement(self, myLocator=None, locatorType="xpath", value=None, index=None, text=None, criteria="value", element=None):
        try:
            if element is None:
                element = self.getElement(myLocator,locatorType)
            if criteria == "value":
                return Select(element).select_by_value(value)
            if criteria == "index":
                return Select ( element ).select_by_index(index)
            if criteria == "text":
                return Select ( element ).select_by_visible_text(text)
        except Exception as error:
            self.logger.error(error)

    def deselectDropDownElement(self, myLocator=None, locatorType="xpath", value=None, index=None, text=None,
                             criteria="value", element=None):
        try:
            if element is None:
                element = self.getElement ( myLocator, locatorType )
            if criteria == "value":
                return Select ( element ).select_by_value ( value )
            if criteria == "index":
                return Select ( element ).select_by_index ( index )
            if criteria == "text":
                return Select ( element ).select_by_visible_text ( text )
        except Exception as error:
            self.logger.error ( error )

    def isListElementClickable(self, myLocator=None, locatorType="xpath", position=None, element=None):
        try:
            if element is None:
                byType = self.getByType(locatorType)
                element = self.getElements(myLocator, byType).__getitem__(position)
            return element.get_attribute("clickable")
        except Exception as error:
            self.logger.error(error)

    def getClassName(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).get_attribute("classname")
            #webdriver.Chrome.find_elements(By.id, myLocator).__getitem__().__len__()
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def getContentDescription(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).get_attribute("content-Desc")
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def getName(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).get_attribute("name")
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def getLocation(self, myLocator, locatorType):
        try:
            return self.getElement(myLocator, locatorType).location
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.logger.error(error)

    def is_text_present(self, text):
        try:
            return str ( text ) in self.driver.page_source
        except ElementNotVisibleException as error:
            self.logger.error(error)

    def clickListElement(self, myLocator=None, locatorType="xpath", elementPosition=0, element=None, elements=None):
        try:
            if elements is not None:
                element = elements.__getitem__(elementPosition)

            elif element is None and myLocator is not None:
                element = self.getElements(myLocator,locatorType).__getitem__(elementPosition)
                #element = self.waitForElementToBe(myLocator, locatorType)
            element.click()
                #self.getElements(myLocator, locatorType).__getitem__(elementPosition).click()
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.takescreenShotOnError()
            self.logger.error(error)


    def getListElement(self, myLocator=None, locatorType="xpath", elementPosition=0, element=None):
        try:

            if element is None:
                element = self.getElements(myLocator,locatorType).__getitem__(elementPosition)
                #element = self.waitForElementToBe(myLocator, locatorType)
            return element
                #self.getElements(myLocator, locatorType).__getitem__(elementPosition).click()
        except (ElementNotSelectableException, ElementNotVisibleException) as error:
            self.takescreenShotOnError()
            self.logger.error(error)

    def waitForElementToBe(self, myLocator, locatorType="xpath", timeout=15, poll_frequency=.5, element=None, event="clickable"):
        try:
            #wt = WebDriverWait(self.driver,10)
            wt = WebDriverWait(self.driver,timeout=timeout,poll_frequency=poll_frequency,
                                    ignored_exceptions=[NoSuchElementException,ElementNotVisibleException,
                                                        ElementNotSelectableException, ElementNotInteractableException])
            byType = self.getByType ( locatorType)

            if event == 'visible':
                element = wt.until(EC.presence_of_element_located((byType, myLocator)))
            if event == "clickable":
                element = wt.until(EC.element_to_be_clickable((byType, myLocator)))
            else:
                element = wt.until(EC.element_to_be_clickable((byType, myLocator)))
            return element
        except Exception as error:
            self.logger.error(str(error))

    def scrollDownToBottom(self):
        try:
            windowHeight = self.driver.execute_script("return document.body.scrollHeight;")
            while True:
                self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

                newWidowHeight = self.driver.execute_script("return document.body.scrollHeight;")
                if windowHeight == newWidowHeight:
                    break
                windowHeight=newWidowHeight
        except Exception as error:
            self.logger.error(error)

    def scrollUpToTop(self):
        try:
            windowHeight = self.driver.execute_script("return document.body.scrollHeight;")
            while True:
                self.driver.execute_script("window.scrollTo(0, -document.body.scrollHeight);")

                newWidowHeight = self.driver.execute_script("return document.body.scrollHeight;")
                if windowHeight == newWidowHeight:
                    break
                windowHeight = newWidowHeight
        except Exception as error:
            self.logger.error(error)

    def scrollElementIntoView(self, element):
        try:
            self.driver.execute_script("arguments[0].scrollIntoView(true);", element)
            #actions = ActionChains ( self.driver )
            #actions.move_to_element(element).perform()
        except Exception as error:
            self.logger.error(error)

    def moveToElement(self, element):
        try:
            #self.driver.execute_script("arguments[0].scrollIntoView(true);", element)
            actions = ActionChains ( self.driver )
            actions.move_to_element(element).perform()
        except Exception as error:
            self.logger.error(error)

    def scrollDownToElement(self, element):
        try:
            element.send_keys(Keys.PAGE_DOWN)
        except Exception as error:
            self.logger.error(error)

    def scrollUpToElement(self, element):
        try:
            element.send_keys(Keys.PAGE_UP)
        except Exception as error:
            self.logger.error(error)

    def pageDown(self):
        try:
            actions = ActionChains(self.driver)
            actions.send_keys(Keys.PAGE_DOWN).perform()
        except Exception as error:
            self.logger.error(error)

    def pageUp(self):
        try:
            actions = ActionChains ( self.driver )
            actions.send_keys ( Keys.PAGE_UP ).perform ()
        except Exception as error:
            self.logger.error(error)

    def arrow_down_up(self, count, direction):
        actions = ActionChains ( self.driver )
        i = 0
        try:
            if direction.upper() == "DOWN":
                while i < int(count):
                    actions.send_keys ( Keys.ARROW_DOWN ).perform ()
                    time.sleep ( 2 )
                    i =i+1
            elif direction.upper() == "UP":
                while i < int ( count ):
                    actions.send_keys ( Keys.ARROW_UP ).perform ()
                    time.sleep ( 2 )
                    i = i+1
        except Exception as error:
            self.logger.error(error)

    def goBack(self):
        try:
            last_height = self.driver.execute_script ( "return document.body.scrollHeight" )
            self.driver.execute_script ( "window.scrollTo(0, document.body.scrollHeight);" )
            self.driver.execute_script ( "window.history.go(-1)" )

            #actions = ActionChains(self.driver)
            #actions.send_keys(Keys.ALT, Keys.LEFT).perform()
            #actions.key_down(Keys.ALT).send_keys(Keys.LEFT).key_up(Keys.ALT).perform()
        except Exception as error:
            self.logger.error(error)

    def moveMouseOnElement(self, mylocator, locatorType):
        try:
            actions = ActionChains(self.driver)
            byType = self.getByType(locatorType)
            element = self.getElement(mylocator, locatorType)
            actions.move_to_element(element).perform()
        except Exception as error:
            self.takescreenShotOnError()
            self.logger.error(error)
        #finally:
            #self.takescreenShotOnError()

    def takescreenShotOnError(self, stepname="click"):
        try:
            tsp = time.time().__str__() #datetime.now()
            #self.logger.warn(tsp)
            name=stepname+tsp+".png"

            self.driver.save_screenshot(name)
            #webdriver.Chrome.get_screenshot_as_png()
            self.logger.info("taking screenshot "+name)
        except Exception as error:
            self.logger.error ( "Error could not take screenshot")
            self.logger.error(error)
Example #12
0
class GuineenewsStartPage(BasePage):
    lg = MyLogger()
    logger = lg.customLogger(logging.DEBUG)

    menu_acceuil = "//ul[@id='menu-mainmenu-1']/li[1]/a"
    menu_news = "//ul[@id='menu-mainmenu-1']/li[2]/a"
    menu_grands_dossiers = "//ul[@id='menu-mainmenu-1']/li[3]/a"
    menu_interviews = "//ul[@id='menu-mainmenu-1']/li[4]/a"
    menu_publireportage = "//ul[@id='menu-mainmenu-1']/li[5]/a"
    menu_region = "//ul[@id='menu-mainmenu-1']/li[6]/a"
    menu_sport = "//ul[@id='menu-mainmenu-1']/li[7]/a"
    menu_le_monde = "//ul[@id='menu-mainmenu-1']/li[8]/a"

    sub_menu_tous = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[1]"
    sub_menu_art_et_culture = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[2]"
    sub_menu_economie = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[3]"
    sub_menu_faits_divers = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[4]"
    sub_menu_politique = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[5]"
    sub_menu_revue_de_presse = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[6]"
    sub_menu_societe = "//ul[@id='menu-mainmenu-1']/li[2]/ul//child::div[@class='block-mega-child-cats']/a[7]"

    search_icon = 'td-header-search-button'  #"//a[@id='td-header-search-button']"
    search_field = 'td-header-search'  #"//input[@id='td-header-search']"
    search_btn = 'td-header-search-top'  #"//input[@id='td-header-search-top']"

    def __init__(self, driver):
        try:
            super().__init__(driver)
            self.driver = driver
            self.logger.info("StartPage successfully created")
        except Exception as error:
            self.logger.error(error)

    def go_to_rubrique(self, rubrique, locatorType="xpath"):
        if rubrique == Menu.Acceuil:
            self.clickElement(self.menu_acceuil, "xpath")
            # self.waitForElementToBe(self.menu, "id")

        if rubrique == Menu.News:
            self.clickElement(self.menu_news, "xpath")

        if rubrique == Menu.Grands_Dossiers:
            self.clickElement(self.menu_grands_dossiers, "xpath")

        if rubrique == Menu.Interviews:
            self.clickElement(self.menu_interviews, "xpath")

        if rubrique == Menu.Publireportage:
            self.clickElement(self.menu_publireportage, "xpath")

        if rubrique == Menu.Region:
            self.clickElement(self.menu_region, "xpath")

        if rubrique == Menu.Sport:
            self.clickElement(self.menu_sport, "xpath")

        if rubrique == Menu.Le_Monde:
            self.clickElement(self.menu_le_monde, "xpath")

    def go_to_sub_rubrique(self, sub_rubrique, locatorType="xpath"):

        if sub_rubrique == Menu.Tous:
            self.clickElement(self.sub_menu_tous, "xpath")
            # self.waitForElementToBe(self.menu, "id")

        if sub_rubrique == Menu.Art_et_Culture:
            self.clickElement(self.sub_menu_art_et_culture, "xpath")

        if sub_rubrique == Menu.Economie:
            self.clickElement(self.sub_menu_economie, "xpath")

        if sub_rubrique == Menu.Faits_Divers:
            self.clickElement(self.sub_menu_faits_divers, "xpath")

        if sub_rubrique == Menu.Politique:
            self.clickElement(self.sub_menu_politique, "xpath")

        if sub_rubrique == Menu.Societe:
            self.clickElement(self.sub_menu_societe, "xpath")

        if sub_rubrique == Menu.Revue_de_presse:
            self.clickElement(self.sub_menu_revue_de_presse, "xpath")

        if sub_rubrique == Menu.Le_Monde:
            self.clickElement(self.menu_le_monde, "xpath")

    def move_mouse_on(self, menu_locator, locatorType="xpath"):
        if menu_locator == Menu.News:
            self.moveMouseOnElement(self.menu_news, locatorType)

        if menu_locator == Menu.Politique:
            self.moveMouseOnElement(self.sub_menu_politique, locatorType)

        if menu_locator == Menu.Revue_de_presse:
            self.moveMouseOnElement(self.sub_menu_revue_de_presse, locatorType)

    def search(self, txt):
        self.clickElement(self.search_icon)
        searchField_input = self.waitForElementToBe(self.search_field,
                                                    "id",
                                                    event="visible")
        self.clearField(element=searchField_input)
        self.typeTextInField(text=txt, element=searchField_input)
        self.clickElement(self.search_btn, "id")
Example #13
0
 def __init__(self,host,port,udid,webDriver=None):
     self.logger = MyLogger("AppiumServer").getlogger()
     self.host = host
     self.port = port
     self.udid = udid
     self.webDriver = webDriver
Example #14
0
from tqdm import tqdm
from pcapfile.savefile import load_savefile
from analyzer.FlowGenerator import FlowGenerator
from utils.logger import MyLogger
from entities.BasicPacket import BasicPacket
from utils.NotifierWin32 import NotifierWin32
try:
    from utils.NotifierLinux import NotifierLinux
except ImportError:
    pass

FLOW_TIMEOUT = 120000000  # 120 seconds
APP_NAME = 'NetworkPacketAnalyzer'

if __name__ == '__main__':
    logger = MyLogger('main')

    if len(sys.argv) != 3:
        logger.error('Argument insufficient. Need Inputfile and Outputfile')
        exit(1)
    input_file = sys.argv[1]
    output_file = sys.argv[2]

    # Set notifier
    if sys.platform == 'win32':
        notifier = NotifierWin32(APP_NAME)
    elif sys.platform == 'linux':
        notifier = NotifierLinux(APP_NAME)
    else:
        notifier = None
class GuineenewsStartPageTest(unittest.TestCase):
    lg = MyLogger()
    logger = lg.customLogger(logging.DEBUG)

    @classmethod
    def setUpClass(cls) -> None:
        try:
            cls.driver = MyDriverFactory.getDriverManager("CHROME").getDriver()
            cls.logger.info("driver was successfuly created")
            cls.startPage = GuineenewsStartPage(cls.driver)
            cls.menuPage = GuineenewsMenu(cls.driver)
        except Exception as error:
            cls.logger.error(error)

    def setUp(self) -> None:
        pass

    @pytest.mark.run(order=1)
    def test_start_guineenews(self):
        try:
            self.driver.get(Pages.getPageURL("guineenewsStartPage"))
            self.logger.info("Guineenews started successfully")
            # current_hd = self.driver.current_window_handle
            # self.logger.info("current handle"+current_hd)
            # hd = self.driver.window_handles
            # if hd is not None:
            #     for h in hd:
            #         self.logger.info(h)
            # self.startPage.takescreenShotOnError("test_start_guineenews")
            self.driver.switch_to.default_content()
            # sleep(5)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=2)
    def test_click_sport(self):
        sleep(10)
        # self.startPage.takescreenShotOnError("before_clicking_sport")
        self.startPage.go_to_rubrique("Sport")
        # self.startPage.takescreenShotOnError("after_clicking_sport")

    @pytest.mark.run(order=3)
    def test_Mouse_0n_News(self):
        try:
            self.menuPage.move_mouse_on("News")
            sleep(2)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=4)
    def test_Mouse_0n_Politique(self):

        try:
            self.menuPage.move_mouse_on("Politique")
            sleep(2)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=5)
    def test_Mouse_0n_Revue_de_Presse(self):

        try:
            self.menuPage.move_mouse_on("Revue")
            sleep(2)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=6)
    def test_Mouse_0n_Societe(self):

        try:
            self.menuPage.move_mouse_on("Societe")
            sleep(2)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=7)
    def test_click_Random_article_in_Revue_de_Presse(self):

        try:
            self.menuPage.click_random_sub_article_in("Region")
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=8)
    #@data ("Alpha code", "Cellou Dalein Diallo")
    @file_data("C:\\MyWorkspace\\python_workspace\\myFrameWork\\testData.json")
    @unpack
    def test_search_text_alpha_conde(self, txt):
        try:
            self.startPage.search(txt)
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=9)
    # @data ("Alpha code", "Cellou Dalein Diallo")
    @data(*readCSV(
        "C:\\MyWorkspace\\python_workspace\\myFrameWork\\resources\\testData.csv"
    ))
    @unpack
    def test_search_text_Titi(self, txt):
        try:
            self.startPage.search(txt)
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    def tearDown(self) -> None:
        pass

    @classmethod
    def tearDownClass(cls) -> None:
        if cls.driver is not None:
            #cls.driver.implicitly_wait (5)
            sleep(5)
            cls.driver.close()
Example #16
0
class GuineenewsAcceuil(BasePage):

    mylg = MyLogger()
    logger = mylg.customLogger(logging.DEBUG)

    # rubrique_title_dernieres_novelles   = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'DERNIERES NOUVELLES')]"
    # rubrique_title_politique            = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'POLITIQUE')]"
    # rubrique_title_Publi_reportage      = "//div[@class='td-block-title-wrap']//child::span[contains(text(), 'PUBLIREPORTAGE')]"
    # rubrique_title_Grand_Dossiers       = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'GRANDS DOSSIERS')]"
    # rubrique_title_Grand_Economie       = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'ECONOMIE')]"
    # rubrique_title_Grand_Sport          = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'SPORT')]"
    # rubrique_title_Grand_Societe        = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'SOCIETE')]"
    # rubrique_title_Grand_Dossiers       = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'GRANDS DOSSIERS')]"
    # rubrique_title_Grand_Economie       = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'ECONOMIE')]"
    # rubrique_title_Grand_Sport          = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'SPORT')]"
    # rubrique_title_Grand_Societe        = "//div[@class='td-block-title-wrap']//child::a[contains(text(), 'SOCIETE')]"

    rubrique_tags = "//ul[@class='td-category']/li"

    def __init__(self, driver):
        super().__init__(driver)
        self.driver = driver

    def is_rubrique_tag_on_page(self, rubrique):
        rubriques = self.getElements(self.rubrique_tags, "xpath")
        if Menu.Le_Monde.upper() == rubrique.upper() or Menu.Societe_sa.upper(
        ) == rubrique:
            return True
        elif len(rubriques) > 0:
            for r in rubriques:
                if self.getElementText(element=r).upper() == rubrique.upper():
                    return True
            return False
        else:
            return False

    def get_rubrique_xpath(self, rubrique):

        if rubrique == 'PUBLIREPORTAGE':
            return "//div[@class='td-block-title-wrap']//child::span[contains(text(), '{}')]".format(
                str(rubrique).upper())
        else:
            return "//div[@class='td-block-title-wrap']//child::a[contains(text(), '{}')]".format(
                str(rubrique).upper())

    def get_rubrique_elements_xpath_locaor(self, rubrique):
        #myLocator = "//div[@id='{}']//child::div[@class='item-details']//a".format(str(rubrique_div_id))
        if rubrique.upper() == 'PUBLIREPORTAGE':
            myLocator = "//div[@class='td-block-title-wrap']//child::span[contains(text(), '{}')]/ancestor::div[@class='td-block-title-wrap']//" \
                        "following-sibling::div[@class='td_block_inner']//child::h3[@class='entry-title td-module-title']//a" \
                .format ( str ( rubrique ).upper () )
        else:
            myLocator = "//div[@class='td-block-title-wrap']//child::a[contains(text(), '{}')]/ancestor::div[@class='td-block-title-wrap']//" \
                    "following-sibling::div[@class='td_block_inner']//child::h3[@class='entry-title td-module-title']//a"\
                .format(str(rubrique).upper())
        return myLocator

    def scroll_to_rubrique(self, rubrique, locatorType="xpath"):

        myLocator = self.get_rubrique_xpath(rubrique)
        element = self.getElement(myLocator, locatorType)
        self.moveToElement(element)
        if rubrique.upper() == "POLITIQUE" or rubrique.upper() == "ART":
            self.arrow_down_up(3, "down")

    def click_a_rubrique_element(self, rubrique, element_index_str=None):

        myLocator = self.get_rubrique_elements_xpath_locaor(rubrique)
        elements = self.getElements(myLocator=myLocator, locatorType="xpath")
        if element_index_str == "random":
            element_index = random.randint(0, int(len(elements) - 1))
            element = self.getListElement(myLocator=myLocator,
                                          locatorType="xpath",
                                          elementPosition=int(element_index))
            self.moveToElement(element)
            self.arrow_down_up(3, "UP")

        elif element_index_str == "last":
            element_index = int(len(elements) - 1)
        else:
            element_index = int(element_index_str)

        #if self.isVisible(element=element) is False or self.isClickable(element=element) is False:
        #self.arrow_down_up(3,"UP")
        #self.logger.warning("element was not visible i scrolled")
        self.clickListElement(elements=elements,
                              elementPosition=int(element_index))
Example #17
0
Every flow is divided to two directions, forward and backward.
When a packet comes, it is judged by its header information and
classified to forward packet and backward packet.

When every packet belongs to this flow joined, the related statistics
will be updated.
"""

import time
from entities.BasicPacket import BasicPacket
from utils.logger import MyLogger
from analyzer.FlowStatistics import FlowStatistics
from utils.FlowStatus import FlowStatus

TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
logger = MyLogger('Flow')
# Please don't put logger into the class


class Flow(object):
    """
    The flow entity.

    Attributes
    ----------
    _forward: list of BasicPacket
        A list to save forward packets.
    _backward: list of BasicPacket
        A list to save backward packets.
    flow_id: str
        The flow id with format "SrcIP-SrcPort-DstIP-DstPort-Protocol"
Example #18
0
    def __init__(self, driver):
        self.logger = MyLogger(self.__class__.__name__).getlogger()
        self.driver = driver
        self.base = BaseApi(self.driver)
        self.readYaml = ReadYaml()
        self.mySelf = MySelf(self.driver)
        # 我的页面
        self.userInfoPage = self.readYaml.getStream(
            FilePath.androidUserInfoPage)
        # 个人资料按钮
        self.personalCenter = self.readYaml.getNode(self.userInfoPage,
                                                    "personalCenter")
        #获取我的页面当前用户名
        self.userName = self.readYaml.getNode(self.userInfoPage, 'userName')

        # 个人资料页面
        self.personalPage = self.readYaml.getStream(
            FilePath.androidPersonalPage)
        self.updateNameButton = self.readYaml.getNode(self.personalPage,
                                                      "updateNameButton")
        self.updateNameInputButton = self.readYaml.getNode(
            self.personalPage, "updateNameInputButton")
        self.updateNameSaveButton = self.readYaml.getNode(
            self.personalPage, "updateNameSaveButton")
        #返回
        self.backButton = self.readYaml.getNode(self.personalPage,
                                                "backButton")

        #修改密码
        self.updatePasswdButton = self.readYaml.getNode(
            self.personalPage, "updatePasswdButton")
        self.oldPasswordFild = self.readYaml.getNode(self.personalPage,
                                                     "oldPasswordFild")
        self.newPasswordFild = self.readYaml.getNode(self.personalPage,
                                                     "newPasswordFild")
        self.affirePasswordFild = self.readYaml.getNode(
            self.personalPage, "affirePasswordFild")
        self.savePassword = self.readYaml.getNode(self.personalPage,
                                                  "savePassword")

        #修改学校
        self.schoolButton = self.readYaml.getNode(self.personalPage,
                                                  "schoolButton")
        self.schoolFile = self.readYaml.getNode(self.personalPage,
                                                "schoolFile")
        self.schoolNameText = self.readYaml.getNode(self.personalPage,
                                                    "schoolNameText")

        #修改简介
        self.updateSummaryButton = self.readYaml.getNode(
            self.personalPage, "updateSummaryButton")
        self.newSummaryFild = self.readYaml.getNode(self.personalPage,
                                                    "newSummaryFild")
        self.newSummaryText = self.readYaml.getNode(self.personalPage,
                                                    "newSummaryText")

        #修改工作单位
        self.workButton = self.readYaml.getNode(self.personalPage,
                                                "workButton")
        self.workFild = self.readYaml.getNode(self.personalPage, "workFild")
        self.workNameText = self.readYaml.getNode(self.personalPage,
                                                  "workNameText")
Example #19
0
#!/usr/bin/env python
# from appium import webdriver
from utils.myconf import myconf
import os, time
from appium import webdriver
from utils.logger import MyLogger
import logging
PATH = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
log = MyLogger(logging.DEBUG, logging.DEBUG)

def read_cofig(file, config):
    fileName = PATH+'\\config\\'+file+'.ini'
    #fileName = PATH+'/config/'+file+'.ini'
    if not os.path.exists(fileName):
        print("当前没有该文件")
        return
    cf = myconf()
    cf.read(fileName)
    item = cf.items(config)
    kvs = dict(item)
    return kvs

def getDriver(desired_caps):
    log.info('启动端口地址------http://127.0.0.1:'+desired_caps['port']+'/wd/hub')
    driver = webdriver.Remote('http://127.0.0.1:'+desired_caps['port']+'/wd/hub', desired_caps)
    return driver

def get_data():
    now = time.localtime(time.time())
    return time.strftime('%Y%m%d%H%M%S', now)
Example #20
0
class JeuneAfriqueStartPageTestSteps(unittest.TestCase):
    driver = None
    myLg = MyLogger()
    logger = myLg.customLogger(logging.DEBUG)

    @classmethod
    def setUpClass(cls) -> None:
        #cls.logger = cls.
        if driverFactory.MyDriverFactory.getDriverManager(
                "CHROME") is not None:
            cls.driver = driverFactory.MyDriverFactory.getDriverManager(
                "CHROME").getDriver()
            cls.startPage = JeuneAfriqueStartPage(cls.driver)
        else:
            cls.logger.error("drivermanager is null")

    def setUp(self) -> None:
        pass

    @pytest.mark.run(order=1)
    def test_startjeuneAfrique(self):
        if self.driver is not None:
            self.driver.get(Pages.getPageURL("startPage"))
            self.startPage.accept_cookies()
            # sleep (3)
        else:
            self.logger.error("driver is null")

    @pytest.mark.run(order=2)
    def test_go_to_politique_page(self):
        try:
            #self.driver.implicitly_wait(15)
            self.startPage.go_to_rubrique("Politique")
            #self.driver.get ( Pages.getPageURL ( "politiquePage" ) )
            self.logger.info("... going to politique page ...")
            self.driver.implicitly_wait(3)
            #sleep (3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=3)
    def test_go_to_culture_page(self):
        try:
            self.startPage.go_to_rubrique("Culture")
            self.logger.info("... going to culture page ...")
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=4)
    def test_scrolltoBottom(self):
        try:
            self.startPage.scrollDownToBottom()
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=5)
    def test_scrolltoTop(self):
        try:
            self.startPage.scrollUpToTop()
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=6)
    def test_go_to_societe_page(self):
        try:
            self.startPage.go_to_rubrique("Societe")
            self.logger.info("... going to societe page ...")
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=7)
    def test_go_to_sport_page(self):
        try:
            self.startPage.go_to_rubrique("Sport")
            self.logger.info("... going to sport page ...")
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=8)
    def test_go_to_lifestyle_page(self):
        try:
            self.startPage.go_to_rubrique("Lifestyle")
            self.logger.info("... going to lifestyle page ...")
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    @pytest.mark.run(order=9)
    def test_go_to_economie_page(self):
        try:
            self.startPage.go_to_rubrique("Economie")
            self.logger.info("... going to economie page ...")
            sleep(3)
        except Exception as error:
            self.logger.error(error)

    # @pytest.mark.run(order=7)
    # def test_go_back(self):
    #     try:
    #         self.startPage.goBack()
    #         self.logger.info("... going back ...")
    #         sleep(3)
    #     except Exception as error:
    #         self.logger.error(error)

    def tearDown(self) -> None:
        pass

    @classmethod
    def tearDownClass(cls) -> None:
        if cls.driver is not None:
            cls.driver.quit()