diff --git a/skyvern/webeye/utils/dom.py b/skyvern/webeye/utils/dom.py index b027eb3b..bf70abc7 100644 --- a/skyvern/webeye/utils/dom.py +++ b/skyvern/webeye/utils/dom.py @@ -127,6 +127,11 @@ class SkyvernElement: self.__frame = frame self.locator = locator self.hash_value = hash_value + self._id_cache = static_element.get("id", "") + self._tag_name = static_element.get("tagName", "") + self._selectable = static_element.get("isSelectable", False) + self._frame_id = static_element.get("frame", "") + self._attributes = static_element.get("attributes", {}) def __repr__(self) -> str: return f"SkyvernElement({str(self.__static_element)})" @@ -291,19 +296,19 @@ class SkyvernElement: return self.__static_element def get_selectable(self) -> bool: - return self.__static_element.get("isSelectable", False) + return self._selectable def get_tag_name(self) -> str: - return self.__static_element.get("tagName", "") + return self._tag_name def get_id(self) -> str: - return self.__static_element.get("id", "") + return self._id_cache def get_frame_id(self) -> str: - return self.__static_element.get("frame", "") + return self._frame_id def get_attributes(self) -> typing.Dict: - return self.__static_element.get("attributes", {}) + return self._attributes def get_options(self) -> typing.List[SkyvernOptionType]: options = self.__static_element.get("options", None)