Exemplo n.º 1
0
    def get_elements(**kwargs):
        """
        Get a set of elements

        Usage:
        ret = self.get_elements(css="#el")
        print(len(ret))
        """
        web_elem = WebElement(**kwargs)
        elems = web_elem.get_elements()
        if len(elems) == 0:
            log.warn("{}.".format(web_elem.warn))
        else:
            log.info("✅ {}.".format(web_elem.info))
        return elems
Exemplo n.º 2
0
    def assertInUrl(self, url=None, msg=None):
        """
        Asserts whether the current URL is in line with expectations.

        Usage:
        self.assertInUrl("url")
        """
        if url is None:
            raise AssertionError("The assertion URL cannot be empty.")
        for _ in range(Seldom.timeout):
            try:
                self.assertIn(url, self.get_url)
                log.info("👀 assertIn url: {url}.".format(url=self.get_url))
                break
            except AssertionError:
                sleep(1)
        else:
            log.warn("❌ assertIn fail: {url}.".format(url=url))
            self.assertIn(url, self.get_url, msg=msg)
Exemplo n.º 3
0
def find_element(elem):
    """
    Find if the element exists.
    """
    for i in range(Seldom.timeout):
        elems = Seldom.driver.find_elements(by=elem[0], value=elem[1])
        if len(elems) == 1:
            log.info("Find element: {by}={value} ".format(by=elem[0],
                                                          value=elem[1]))
            break
        elif len(elems) > 1:
            log.warn("Find {n} elements through:{by}={value}".format(
                n=len(elems), by=elem[0], value=elem[1]))
            break
        else:
            time.sleep(1)
    else:
        log.error("Find 0 elements through:{by}={value}".format(by=elem[0],
                                                                value=elem[1]))
Exemplo n.º 4
0
    def assertInTitle(self, title=None, msg=None):
        """
        Asserts whether the current title is in line with expectations.

        Usage:
        self.assertInTitle("title")
        """
        if title is None:
            raise AssertionError("The assertion title cannot be empty.")
        for _ in range(Seldom.timeout):
            try:
                self.assertIn(title, Seldom.driver.title)
                log.info("👀 assertIn title: {title}.".format(
                    title=Seldom.driver.title))
                break
            except AssertionError:
                sleep(1)
        else:
            log.warn("❌ assertIn fail: {title}.".format(title=title))
            self.assertIn(title, Seldom.driver.title, msg=msg)
Exemplo n.º 5
0
    def check_element(self, css=None):
        """
        Check that the element exists

        Usage:
        self.check_element(css="#el")
        """
        if css is None:
            raise NameError("Please enter a CSS selector")

        log.info("👀 check element.")
        js = 'return document.querySelectorAll("{css}")'.format(css=css)
        ret = Seldom.driver.execute_script(js)
        if len(ret) > 0:
            for i in range(len(ret)):
                js = 'return document.querySelectorAll("{css}")[{i}].outerHTML;'.format(css=css, i=i)
                ret = Seldom.driver.execute_script(js)
                print("{} ->".format(i), ret)
        else:
            log.warn("No elements were found.")
Exemplo n.º 6
0
    def assertUrl(self, url, msg=None):
        """
        Asserts whether the current URL is in line with expectations.

        Usage:
        self.assertUrl("url")
        """
        if url is None:
            raise AssertionError("The assertion URL cannot be empty.")
        for _ in range(Seldom.timeout + 1):
            current_url = unquote(Seldom.driver.current_url)
            try:
                self.assertEqual(url, current_url)
                log.info("👀 assert url: {url}.".format(url=current_url))
                break
            except AssertionError:
                sleep(1)
        else:
            log.warn("❌ assert fail: {url}.".format(url=url))
            self.assertEqual(url, Seldom.driver.current_url, msg=msg)