123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- <?php
- namespace Facebook\WebDriver\Interactions;
- use Facebook\WebDriver\Interactions\Internal\WebDriverButtonReleaseAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverClickAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverClickAndHoldAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverContextClickAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverDoubleClickAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverKeyDownAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverKeyUpAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverMouseMoveAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverMoveToOffsetAction;
- use Facebook\WebDriver\Interactions\Internal\WebDriverSendKeysAction;
- use Facebook\WebDriver\WebDriver;
- use Facebook\WebDriver\WebDriverElement;
- use Facebook\WebDriver\WebDriverHasInputDevices;
- class WebDriverActions
- {
- protected $driver;
- protected $keyboard;
- protected $mouse;
- protected $action;
-
- public function __construct(WebDriverHasInputDevices $driver)
- {
- $this->driver = $driver;
- $this->keyboard = $driver->getKeyboard();
- $this->mouse = $driver->getMouse();
- $this->action = new WebDriverCompositeAction();
- }
-
- public function perform()
- {
- $this->action->perform();
- }
-
- public function click(WebDriverElement $element = null)
- {
- $this->action->addAction(
- new WebDriverClickAction($this->mouse, $element)
- );
- return $this;
- }
-
- public function clickAndHold(WebDriverElement $element = null)
- {
- $this->action->addAction(
- new WebDriverClickAndHoldAction($this->mouse, $element)
- );
- return $this;
- }
-
- public function contextClick(WebDriverElement $element = null)
- {
- $this->action->addAction(
- new WebDriverContextClickAction($this->mouse, $element)
- );
- return $this;
- }
-
- public function doubleClick(WebDriverElement $element = null)
- {
- $this->action->addAction(
- new WebDriverDoubleClickAction($this->mouse, $element)
- );
- return $this;
- }
-
- public function dragAndDrop(WebDriverElement $source, WebDriverElement $target)
- {
- $this->action->addAction(
- new WebDriverClickAndHoldAction($this->mouse, $source)
- );
- $this->action->addAction(
- new WebDriverMouseMoveAction($this->mouse, $target)
- );
- $this->action->addAction(
- new WebDriverButtonReleaseAction($this->mouse, $target)
- );
- return $this;
- }
-
- public function dragAndDropBy(WebDriverElement $source, $x_offset, $y_offset)
- {
- $this->action->addAction(
- new WebDriverClickAndHoldAction($this->mouse, $source)
- );
- $this->action->addAction(
- new WebDriverMoveToOffsetAction($this->mouse, null, $x_offset, $y_offset)
- );
- $this->action->addAction(
- new WebDriverButtonReleaseAction($this->mouse, null)
- );
- return $this;
- }
-
- public function moveByOffset($x_offset, $y_offset)
- {
- $this->action->addAction(
- new WebDriverMoveToOffsetAction($this->mouse, null, $x_offset, $y_offset)
- );
- return $this;
- }
-
- public function moveToElement(WebDriverElement $element, $x_offset = null, $y_offset = null)
- {
- $this->action->addAction(new WebDriverMoveToOffsetAction(
- $this->mouse,
- $element,
- $x_offset,
- $y_offset
- ));
- return $this;
- }
-
- public function release(WebDriverElement $element = null)
- {
- $this->action->addAction(
- new WebDriverButtonReleaseAction($this->mouse, $element)
- );
- return $this;
- }
-
- public function keyDown(WebDriverElement $element = null, $key = null)
- {
- $this->action->addAction(
- new WebDriverKeyDownAction($this->keyboard, $this->mouse, $element, $key)
- );
- return $this;
- }
-
- public function keyUp(WebDriverElement $element = null, $key = null)
- {
- $this->action->addAction(
- new WebDriverKeyUpAction($this->keyboard, $this->mouse, $element, $key)
- );
- return $this;
- }
-
- public function sendKeys(WebDriverElement $element = null, $keys = null)
- {
- $this->action->addAction(
- new WebDriverSendKeysAction(
- $this->keyboard,
- $this->mouse,
- $element,
- $keys
- )
- );
- return $this;
- }
- }
|