Beispiel #1
0
    def create_page(cls, doc):
        page = Page()
        page.name = doc['page']['name']

        if "url" in doc['page']:
            page.url = doc['page']['url']

        # if "route" in doc['page']:
        #     page.route = doc['page']['route']

        if "url_paths" in doc['page']:
            for item in doc['page']['url_paths']:
                name = item['name']
                path = item['path']

                if not name in page.url_paths:
                    page.url_paths[name] = path
                else:
                    log.warning("Duplicate url path name!", {
                        'page': page.name,
                        'path': name
                    })

        if "elements" in doc:
            for item in doc['elements']:
                if not "name" in item:
                    log.warning("Found unnamed element!", {
                        'page': doc['page']['name']
                    })

                if not "xpath" in item:
                    log.warning("XPath not specified!", {
                        'page': doc['page']['name'],
                        'element': item['name']
                    })

                element = Element(item['name'], item['xpath'])
                element.driver = page.driver

                if not element.name in page.elements:
                    page.elements[element.name] = element
                else:
                    log.warning("Duplicate element name!", {
                        'page': page.name,
                        'element': element.name
                    })

        # if "site_url" in doc:
        #     page.site_config = doc['site_url']
        #     page.site_config['default'] = page.url

        return page