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
Exemplo n.º 8
0
def is_webelement_guard(element):
    argument_guard.is_valid_type(
        is_webelement(element),
        "element argument should be type Selenium or Appium Web Element",
    )