<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def assert_not_visible(self, selector, testid=None, **kwargs):
 """Assert that the element is not visible in the dom Args: selector (str):
 the selector used to find the element test_id (str):
 the test_id or a str Kwargs: wait_until_not_visible (bool) highlight (bool) Returns: bool: True is the assertion succeed; False otherwise. """

        self.info_log(
            "Assert not visible selector(%s) testid(%s)" % (selector, testid)
        )

        highlight = kwargs.get(
            'highlight',
            BROME_CONFIG['highlight']['highlight_on_assertion_failure']
        )
        self.debug_log("effective highlight: %s" % highlight)

        wait_until_not_visible = kwargs.get(
            'wait_until_not_visible',
            BROME_CONFIG['proxy_driver']['wait_until_not_visible_before_assert_not_visible']  # noqa
        )
        self.debug_log(
            "effective wait_until_not_visible: %s" % wait_until_not_visible
        )

        if wait_until_not_visible:
            self.wait_until_not_visible(selector, raise_exception=False)

        element = self.find(
            selector,
            raise_exception=False,
            wait_until_visible=False,
            wait_until_present=False
        )
        if element and element.is_displayed(raise_exception=False):
            data = self.execute_script(
                "return arguments[0].getBoundingClientRect();",
                element._element
            )

            if highlight:
                element.highlight(
                    style=BROME_CONFIG['highlight']['style_on_assertion_failure']  # noqa
                )
            if testid is not None:
                self.create_test_result(testid, False, extra_data={
                    'bounding_client_rect': data,
                    'video_x_offset': self.browser_config.get('video_x_offset', 0),  # noqa
                    'video_y_offset': self.browser_config.get('video_y_offset', 0)  # noqa
                })

            return False
        else:
            if testid is not None:
                self.create_test_result(testid, True)

            return True