Advertisement
Guest User

Untitled

a guest
Jul 6th, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. def scrollElemToMiddle(self, e):
  2. window_dims = self.getWindowDims()
  3. e_position = self.getElemPosition(e)
  4. e_dims = self.getElemDims(e)
  5.  
  6. scroll_x = e_position['x'] - window_dims['x']/2 + e_dims['x']/2
  7. scroll_y = e_position['y'] - window_dims['y']/2 + e_dims['y']/2
  8.  
  9. self.driver.execute_script( "window.scrollTo(%i, %i);" %(scroll_x, scroll_y) )
  10.  
  11. # top left
  12. def getElemPosition(self, e):
  13. # http://stackoverflow.com/a/3471664
  14.  
  15. return self.driver.execute_script(
  16. "el = arguments[0];"
  17. "var el2 = el;"
  18. "var curtop = 0;"
  19. "var curleft = 0;"
  20. "if (document.getElementById || document.all) {"
  21. "do {"
  22. "curleft += el.offsetLeft-el.scrollLeft;"
  23. "curtop += el.offsetTop-el.scrollTop;"
  24. "el = el.offsetParent;"
  25. "el2 = el2.parentNode;"
  26. "while (el2 != el) {"
  27. "curleft -= el2.scrollLeft;"
  28. "curtop -= el2.scrollTop;"
  29. "el2 = el2.parentNode;"
  30. "}"
  31. "} while (el.offsetParent);"
  32. "} else if (document.layers) {"
  33. "curtop += el.y;"
  34. "curleft += el.x;"
  35. "}"
  36. "return {x: curleft, y: curtop};",
  37. e
  38. )
  39.  
  40. def getWindowDims(self):
  41. # http://stackoverflow.com/a/28241682
  42.  
  43. return self.driver.execute_script(
  44. "var x = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;"
  45. "var y = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;"
  46. "return {x: x, y: y};"
  47. )
  48.  
  49. def getElemDims(self, e):
  50. return self.driver.execute_script(
  51. "e = arguments[0];"
  52. "return {x: e.scrollWidth, y: e.scrollHeight};",
  53. e
  54. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement