From b440113d2934962e46ef505b7e01e8a5f7a6d104 Mon Sep 17 00:00:00 2001 From: VladimirPodolyan <36446855+VladimirPodolyan@users.noreply.github.com> Date: Fri, 31 Aug 2018 22:11:03 +0300 Subject: [PATCH 1/6] w3c issue with execute(Command.GET_ELEMENT_RECT) --- py/selenium/webdriver/remote/webelement.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/py/selenium/webdriver/remote/webelement.py b/py/selenium/webdriver/remote/webelement.py index b5f179a5481d6..2436117396f1b 100644 --- a/py/selenium/webdriver/remote/webelement.py +++ b/py/selenium/webdriver/remote/webelement.py @@ -539,7 +539,10 @@ def location(self): @property def rect(self): """A dictionary with the size and location of the element.""" - return self._execute(Command.GET_ELEMENT_RECT)['value'] + if self._w3c: + return self._execute(Command.GET_ELEMENT_RECT)['value'] + else: + return self.size, self.location @property def screenshot_as_base64(self): From 80488ba57f3e19b2717bcf4444f52b36b5800b0a Mon Sep 17 00:00:00 2001 From: VladimirPodolyan <36446855+VladimirPodolyan@users.noreply.github.com> Date: Fri, 31 Aug 2018 23:00:35 +0300 Subject: [PATCH 2/6] update dict --- py/selenium/webdriver/remote/webelement.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/py/selenium/webdriver/remote/webelement.py b/py/selenium/webdriver/remote/webelement.py index 2436117396f1b..14659dd4bdefa 100644 --- a/py/selenium/webdriver/remote/webelement.py +++ b/py/selenium/webdriver/remote/webelement.py @@ -542,7 +542,8 @@ def rect(self): if self._w3c: return self._execute(Command.GET_ELEMENT_RECT)['value'] else: - return self.size, self.location + _rect = dict(list(self.size.items()) + list(self.location.items())) + return _rect @property def screenshot_as_base64(self): From 025958111deef41cd904135b63135fc919b16bd4 Mon Sep 17 00:00:00 2001 From: VladimirPodolyan <36446855+VladimirPodolyan@users.noreply.github.com> Date: Sat, 1 Sep 2018 13:57:37 +0300 Subject: [PATCH 3/6] Update webelement.py --- py/selenium/webdriver/remote/webelement.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/py/selenium/webdriver/remote/webelement.py b/py/selenium/webdriver/remote/webelement.py index 14659dd4bdefa..a1300748042f2 100644 --- a/py/selenium/webdriver/remote/webelement.py +++ b/py/selenium/webdriver/remote/webelement.py @@ -542,8 +542,7 @@ def rect(self): if self._w3c: return self._execute(Command.GET_ELEMENT_RECT)['value'] else: - _rect = dict(list(self.size.items()) + list(self.location.items())) - return _rect + return dict(list(self.size.items()) + list(self.location.items())) @property def screenshot_as_base64(self): From 6471c91a3fe19c3a4ce051596597406caf9d56e4 Mon Sep 17 00:00:00 2001 From: VladimirPodolyan <36446855+VladimirPodolyan@users.noreply.github.com> Date: Fri, 7 Sep 2018 23:02:14 +0300 Subject: [PATCH 4/6] Update webelement.py --- py/selenium/webdriver/remote/webelement.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/py/selenium/webdriver/remote/webelement.py b/py/selenium/webdriver/remote/webelement.py index a1300748042f2..d8faca653babc 100644 --- a/py/selenium/webdriver/remote/webelement.py +++ b/py/selenium/webdriver/remote/webelement.py @@ -542,7 +542,12 @@ def rect(self): if self._w3c: return self._execute(Command.GET_ELEMENT_RECT)['value'] else: - return dict(list(self.size.items()) + list(self.location.items())) + size = self._execute(Command.GET_ELEMENT_SIZE)['value'] + loc = self._execute(Command.GET_ELEMENT_LOCATION)['value'] + + rect = {"height": size["height"], "width": size["width"], + "x": round(loc['x']), "y": round(loc['y'])} + return rect @property def screenshot_as_base64(self): From 7d3edbe00f5e3227d24051cc6656199ee3e159de Mon Sep 17 00:00:00 2001 From: VladimirPodolyan <36446855+VladimirPodolyan@users.noreply.github.com> Date: Fri, 7 Sep 2018 23:49:45 +0300 Subject: [PATCH 5/6] get rect via update --- py/selenium/webdriver/remote/webelement.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/py/selenium/webdriver/remote/webelement.py b/py/selenium/webdriver/remote/webelement.py index d8faca653babc..9a55bc7126486 100644 --- a/py/selenium/webdriver/remote/webelement.py +++ b/py/selenium/webdriver/remote/webelement.py @@ -542,12 +542,10 @@ def rect(self): if self._w3c: return self._execute(Command.GET_ELEMENT_RECT)['value'] else: - size = self._execute(Command.GET_ELEMENT_SIZE)['value'] - loc = self._execute(Command.GET_ELEMENT_LOCATION)['value'] + rect = self.size.copy() + rect.update(self.location) + return rect - rect = {"height": size["height"], "width": size["width"], - "x": round(loc['x']), "y": round(loc['y'])} - return rect @property def screenshot_as_base64(self): From d4e2fa64abaea9313632ba351432332d65f0ab6d Mon Sep 17 00:00:00 2001 From: VladimirPodolyan <36446855+VladimirPodolyan@users.noreply.github.com> Date: Sat, 8 Sep 2018 14:22:37 +0300 Subject: [PATCH 6/6] delete blank row --- py/selenium/webdriver/remote/webelement.py | 1 - 1 file changed, 1 deletion(-) diff --git a/py/selenium/webdriver/remote/webelement.py b/py/selenium/webdriver/remote/webelement.py index 9a55bc7126486..3e49f37d74f1c 100644 --- a/py/selenium/webdriver/remote/webelement.py +++ b/py/selenium/webdriver/remote/webelement.py @@ -546,7 +546,6 @@ def rect(self): rect.update(self.location) return rect - @property def screenshot_as_base64(self): """