Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def scrollElemToMiddle(self, e):
- window_dims = self.getWindowDims()
- e_position = self.getElemPosition(e)
- e_dims = self.getElemDims(e)
- scroll_x = e_position['x'] - window_dims['x']/2 + e_dims['x']/2
- scroll_y = e_position['y'] - window_dims['y']/2 + e_dims['y']/2
- self.driver.execute_script( "window.scrollTo(%i, %i);" %(scroll_x, scroll_y) )
- # top left
- def getElemPosition(self, e):
- # http://stackoverflow.com/a/3471664
- return self.driver.execute_script(
- "el = arguments[0];"
- "var el2 = el;"
- "var curtop = 0;"
- "var curleft = 0;"
- "if (document.getElementById || document.all) {"
- "do {"
- "curleft += el.offsetLeft-el.scrollLeft;"
- "curtop += el.offsetTop-el.scrollTop;"
- "el = el.offsetParent;"
- "el2 = el2.parentNode;"
- "while (el2 != el) {"
- "curleft -= el2.scrollLeft;"
- "curtop -= el2.scrollTop;"
- "el2 = el2.parentNode;"
- "}"
- "} while (el.offsetParent);"
- "} else if (document.layers) {"
- "curtop += el.y;"
- "curleft += el.x;"
- "}"
- "return {x: curleft, y: curtop};",
- e
- )
- def getWindowDims(self):
- # http://stackoverflow.com/a/28241682
- return self.driver.execute_script(
- "var x = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;"
- "var y = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;"
- "return {x: x, y: y};"
- )
- def getElemDims(self, e):
- return self.driver.execute_script(
- "e = arguments[0];"
- "return {x: e.scrollWidth, y: e.scrollHeight};",
- e
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement