2727 PositionProvider ,
2828 RegionProvider ,
2929 TextTrigger ,
30+ NullCutProvider ,
3031)
3132from applitools .selenium .capture .eyes_webdriver_screenshot import (
3233 EyesWebDriverScreenshotFactory ,
@@ -242,7 +243,7 @@ def check(self, name, check_settings=None):
242243 )
243244 self ._original_frame_chain = self .driver .frame_chain .clone ()
244245
245- if not self .driver .is_mobile_device () :
246+ if not self .driver .is_mobile_platform :
246247 # hide scrollbar for main window
247248 self ._try_hide_scrollbars ()
248249
@@ -293,7 +294,7 @@ def _check_result_flow(self, name, check_settings):
293294 result = self ._check_frame_fluent (name , check_settings )
294295 else :
295296 logger .debug ("default case" )
296- if not self .driver .is_mobile_device () :
297+ if not self .driver .is_mobile_platform :
297298 # required to prevent cut line on the last stitched part of the
298299 # page on some browsers (like firefox).
299300 self .driver .switch_to .default_content ()
@@ -498,7 +499,7 @@ def _set_viewport_size(self, size):
498499 # logger.info("Ignored (viewport size given explicitly)")
499500 # return None
500501
501- if not self .driver .is_mobile_device () :
502+ if not self .driver .is_mobile_platform :
502503 original_frame = self .driver .frame_chain .clone ()
503504 self .driver .switch_to .default_content ()
504505
@@ -524,7 +525,7 @@ def _environment(self):
524525 logger .info ("No OS set, checking for mobile OS..." )
525526 # Since in Python Appium driver is the same for Android and iOS,
526527 # we need to use the desired capabilities to figure this out.
527- if eyes_selenium_utils .is_mobile_device (self ._driver ):
528+ if eyes_selenium_utils .is_mobile_platform (self ._driver ):
528529 platform_name = self ._driver .platform_name
529530 logger .info (platform_name + " detected" )
530531 platform_version = self ._driver .platform_version
@@ -667,7 +668,7 @@ def _try_hide_caret(self):
667668
668669 def _get_screenshot (self ):
669670 with self ._driver .switch_to .frames_and_back (self ._original_frame_chain ):
670- if self .position_provider and not self .driver .is_mobile_device () :
671+ if self .position_provider and not self .driver .is_mobile_platform :
671672 self .position_provider .push_state ()
672673
673674 self ._try_hide_caret ()
@@ -682,7 +683,7 @@ def _get_screenshot(self):
682683 self ._last_screenshot = self ._viewport_screenshot (scale_provider )
683684
684685 with self ._driver .switch_to .frames_and_back (self ._original_frame_chain ):
685- if self .position_provider and not self .driver .is_mobile_device () :
686+ if self .position_provider and not self .driver .is_mobile_platform :
686687 self .position_provider .pop_state ()
687688
688689 return self ._last_screenshot
@@ -756,10 +757,18 @@ def _viewport_screenshot(self, scale_provider):
756757 sleep (self .configuration .wait_before_screenshots / 1000.0 )
757758 image = self ._image_provider .get_image ()
758759 self ._debug_screenshot_provider .save (image , "original" )
760+
759761 scale_provider .update_scale_ratio (image .width )
760762 pixel_ratio = 1 / scale_provider .scale_ratio
761763 if pixel_ratio != 1.0 :
764+ logger .info ("Scalling" )
762765 image = image_utils .scale_image (image , 1.0 / pixel_ratio )
766+ self ._debug_screenshot_provider .save (image , "scaled" )
767+
768+ if not isinstance (self .cut_provider , NullCutProvider ):
769+ logger .info ("Cutting" )
770+ image = self .cut_provider .cut (image )
771+ self ._debug_screenshot_provider .save (image , "cutted" )
763772
764773 return EyesWebDriverScreenshot .create_viewport (self ._driver , image )
765774
@@ -781,7 +790,7 @@ def _ensure_element_visible(self, element):
781790 if self ._target_element is None :
782791 # No element? we must be checking the window.
783792 return None
784- if self .driver .is_mobile_device () :
793+ if self .driver .is_mobile_platform :
785794 logger .debug ("NATIVE context identified, skipping 'ensure element visible'" )
786795 return None
787796
0 commit comments