def __attrs_post_init__(self): # type: () -> None self._screenshot_type = update_screenshot_type( self._screenshot_type, self._image, self._driver ) position_provider = eyes_selenium_utils.get_cur_position_provider(self._driver) if not self._driver.is_mobile_app: self._frame_chain = self._driver.frame_chain.clone() frame_size = self.get_frame_size(position_provider) self._current_frame_scroll_position = eyes_selenium_utils.get_updated_scroll_position( # noqa position_provider ) self.updated_frame_location_in_screenshot( self._frame_location_in_screenshot ) logger.debug("Calculating frame window...") self.frame_window = Region.from_( self._frame_location_in_screenshot, frame_size ) else: self._frame_chain = FrameChain() self._current_frame_scroll_position = Point.ZERO() self._frame_location_in_screenshot = Point.ZERO() self.frame_window = Region.from_( self._frame_location_in_screenshot, self.image ) self.frame_window = self.frame_window.intersect(Region.from_(self.image))
def __attrs_post_init__(self): # type: () -> None self._frame_chain = self._driver.frame_chain.clone() self._screenshot_type = update_screenshot_type( self._screenshot_type, self._image, self._driver ) cur_frame_position_provider = self._driver.eyes.current_frame_position_provider if cur_frame_position_provider: position_provider = cur_frame_position_provider else: position_provider = self._driver.eyes.position_provider if self._current_frame_scroll_position is None: self._current_frame_scroll_position = get_updated_scroll_position( position_provider ) self._frame_location_in_screenshot = self.get_updated_frame_location_in_screenshot( self._frame_location_in_screenshot ) logger.debug("Calculating frame window...") if self.frame_window is None: frame_size = self.get_frame_size(position_provider) self.frame_window = Region.from_location_size( self._frame_location_in_screenshot, frame_size ) self.frame_window.intersect( Region(0, 0, width=self.image.width, height=self.image.height) )
def cut_to_viewport_size_if_required(driver, image): # type: (EyesWebDriver, Image) -> Image # Some browsers return always full page screenshot (IE). # So we cut such images to viewport size position_provider = get_cur_position_provider(driver) curr_frame_scroll = get_updated_scroll_position(position_provider) screenshot_type = update_screenshot_type(None, image, driver) if screenshot_type != ScreenshotType.VIEWPORT: viewport_size = driver.eyes.viewport_size image = image_utils.crop_image( image, region_to_crop=Region( top=curr_frame_scroll.x, left=0, height=viewport_size["height"], width=viewport_size["width"], ), ) return image