comparison vendor/jcalderonzumba/mink-phantomjs-driver/src/WindowTrait.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2
3 namespace Zumba\Mink\Driver;
4
5 use Behat\Mink\Exception\DriverException;
6
7 /**
8 * Class WindowTrait
9 * @package Zumba\Mink\Driver
10 */
11 trait WindowTrait {
12 /**
13 * Returns the current page window name
14 * @return string
15 */
16 public function getWindowName() {
17 return $this->browser->windowName();
18 }
19
20 /**
21 * Return all the window handles currently present in phantomjs
22 * @return array
23 */
24 public function getWindowNames() {
25 return $this->browser->windowHandles();
26 }
27
28 /**
29 * Switches to window by name if possible
30 * @param $name
31 * @throws DriverException
32 */
33 public function switchToWindow($name = null) {
34 $handles = $this->browser->windowHandles();
35 if ($name === null) {
36 //null means back to the main window
37 return $this->browser->switchToWindow($handles[0]);
38 }
39
40 $windowHandle = $this->browser->windowHandle($name);
41 if (!empty($windowHandle)) {
42 $this->browser->switchToWindow($windowHandle);
43 } else {
44 throw new DriverException("Could not find window handle by a given window name: $name");
45 }
46
47 }
48
49 /**
50 * Resizing a window with specified size
51 * @param int $width
52 * @param int $height
53 * @param string $name
54 * @throws DriverException
55 */
56 public function resizeWindow($width, $height, $name = null) {
57 if ($name !== null) {
58 //TODO: add this on the phantomjs stuff
59 throw new DriverException("Resizing other window than the main one is not supported yet");
60 }
61 $this->browser->resize($width, $height);
62 }
63
64 }