WebDriverMoveToOffsetAction.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. // Copyright 2004-present Facebook. All Rights Reserved.
  3. //
  4. // Licensed under the Apache License, Version 2.0 (the "License");
  5. // you may not use this file except in compliance with the License.
  6. // You may obtain a copy of the License at
  7. //
  8. // http://www.apache.org/licenses/LICENSE-2.0
  9. //
  10. // Unless required by applicable law or agreed to in writing, software
  11. // distributed under the License is distributed on an "AS IS" BASIS,
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. // See the License for the specific language governing permissions and
  14. // limitations under the License.
  15. namespace Facebook\WebDriver\Interactions\Internal;
  16. use Facebook\WebDriver\Internal\WebDriverLocatable;
  17. use Facebook\WebDriver\WebDriverAction;
  18. use Facebook\WebDriver\WebDriverMouse;
  19. class WebDriverMoveToOffsetAction extends WebDriverMouseAction implements WebDriverAction
  20. {
  21. /**
  22. * @var int|null
  23. */
  24. private $xOffset;
  25. /**
  26. * @var int|null
  27. */
  28. private $yOffset;
  29. /**
  30. * @param WebDriverMouse $mouse
  31. * @param WebDriverLocatable|null $location_provider
  32. * @param int|null $x_offset
  33. * @param int|null $y_offset
  34. */
  35. public function __construct(
  36. WebDriverMouse $mouse,
  37. WebDriverLocatable $location_provider = null,
  38. $x_offset = null,
  39. $y_offset = null
  40. ) {
  41. parent::__construct($mouse, $location_provider);
  42. $this->xOffset = $x_offset;
  43. $this->yOffset = $y_offset;
  44. }
  45. public function perform()
  46. {
  47. $this->mouse->mouseMove(
  48. $this->getActionLocation(),
  49. $this->xOffset,
  50. $this->yOffset
  51. );
  52. }
  53. }