def _region_provider_from(self, region, method_name, padding): if isinstance(region, string_types): return RegionBySelector(TargetPath.region(region), padding) elif is_list_or_tuple(region): return RegionBySelector(TargetPath.region(*region), padding) elif isinstance(region, Locator): return RegionBySelector(region, padding) elif is_webelement(region): return RegionByElement(region, padding) return super(SeleniumCheckSettings, self)._region_provider_from(region, method_name, padding)
def _floating_provider_from(self, region, bounds): if is_webelement(region): return FloatingRegionByElement(region, bounds) elif isinstance(region, string_types): return FloatingRegionBySelector(TargetPath.region(region), bounds) elif is_list_or_tuple(region): return FloatingRegionBySelector(TargetPath.region(*region), bounds) elif isinstance(region, Locator): return FloatingRegionBySelector(region, bounds) return super(SeleniumCheckSettings, self)._floating_provider_from(region, bounds)
def to_by_selector(self, locator): # type: (Text) -> BySelector if is_webelement(locator): raise EyesLibraryValueError("Cannot convert WebElement to selector") prefix, criteria = self._element_finder._parse_locator(locator) if prefix is None: # appium returns None instead of `default` prefix = "default" if not criteria: raise ValueError("Incorrect selector: `{}`".format(locator)) return self.__locator_to_by_selector(prefix, criteria)
def scroll_root_element(self, element_or_selector): # noqa if isinstance(element_or_selector, string_types): self._set_scroll_root_selector( TargetPath.region(element_or_selector)) elif is_list_or_tuple(element_or_selector): self._set_scroll_root_selector( TargetPath.region(*element_or_selector)) elif isinstance(element_or_selector, Locator): self._set_scroll_root_selector(element_or_selector) elif is_webelement(element_or_selector): self._set_scroll_root_element(element_or_selector) else: raise TypeError("Unsupported type of scroll root element") return self
def _accessibility_provider_from(self, region, accessibility_region_type): if is_webelement(region): return AccessibilityRegionByElement(region, accessibility_region_type) elif isinstance(region, string_types): return AccessibilityRegionBySelector(TargetPath.region(region), accessibility_region_type) elif is_list_or_tuple(region): return AccessibilityRegionBySelector(TargetPath.region(*region), accessibility_region_type) elif isinstance(region, Locator): return AccessibilityRegionBySelector(region, accessibility_region_type) return super(SeleniumCheckSettings, self)._accessibility_provider_from( region, accessibility_region_type)
def region(self, region): # noqa # type:(...) -> SeleniumCheckSettings if isinstance(region, Region): self.values.target_region = region elif is_list_or_tuple(region): self.values.target_selector = TargetPath.region(*region) elif isinstance(region, string_types): self.values.target_selector = TargetPath.region(region) elif isinstance(region, Locator): self.values.target_selector = region elif is_webelement(region): self.values.target_element = region else: raise TypeError( "region method called with argument of unknown type!") return self
def frame(self, frame): # noqa # type:(...) -> SeleniumCheckSettings fl = FrameLocator() if isinstance(frame, int): fl.frame_index = frame elif isinstance(frame, string_types): fl.frame_name_or_id = frame elif is_webelement(frame): fl.frame_element = frame elif is_list_or_tuple(frame): fl.frame_selector = TargetPath.frame(*frame) elif isinstance(frame, Locator): fl.frame_selector = frame else: raise TypeError( "frame method called with argument of unknown type!") self.values.frame_chain.append(fl) return self
def is_webelement_guard(element): argument_guard.is_valid_type( is_webelement(element), "element argument should be type Selenium or Appium Web Element", )