Skip to content

Commit

Permalink
Allow specify frame index in the "switchToIFrame" driver/session method
Browse files Browse the repository at this point in the history
  • Loading branch information
aik099 committed Feb 18, 2024
1 parent d8527fd commit 5b96b0f
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 9 deletions.
4 changes: 2 additions & 2 deletions src/Driver/CoreDriver.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,14 @@ public function switchToWindow(?string $name = null)
}

/**
* @param string|null $name
* @param string|int|null $name
*
* @return void
*
* @throws UnsupportedDriverActionException When operation not supported by the driver
* @throws DriverException When the operation cannot be done
*/
public function switchToIFrame(?string $name = null)
public function switchToIFrame($name = null)
{
throw new UnsupportedDriverActionException('iFrames management is not supported by %s', $this);
}
Expand Down
4 changes: 2 additions & 2 deletions src/Driver/DriverInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,14 +184,14 @@ public function switchToWindow(?string $name = null);
/**
* Switches to specific iFrame.
*
* @param string|null $name iframe name (null for switching back)
* @param string|int|null $name iframe name/index (null for switching back)
*
* @return void
*
* @throws UnsupportedDriverActionException When operation not supported by the driver
* @throws DriverException When the operation cannot be done
*/
public function switchToIFrame(?string $name = null);
public function switchToIFrame($name = null);

/**
* Sets specific request header on client.
Expand Down
4 changes: 2 additions & 2 deletions src/Session.php
Original file line number Diff line number Diff line change
Expand Up @@ -355,11 +355,11 @@ public function switchToWindow(?string $name = null)
/**
* Switches to specific iFrame.
*
* @param string|null $name iframe name (null for switching back)
* @param string|int|null $name iframe name/index (null for switching back)
*
* @return void
*/
public function switchToIFrame(?string $name = null)
public function switchToIFrame($name = null)
{
$this->driver->switchToIFrame($name);
}
Expand Down
22 changes: 19 additions & 3 deletions tests/SessionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -296,13 +296,29 @@ public function testSwitchToWindow()
$this->session->switchToWindow('test');
}

public function testSwitchToIFrame()
/**
* @param string|int $iframeIdentifier
*
* @dataProvider iFrameDataProvider
*/
public function testSwitchToIFrame($iframeIdentifier)
{
$this->driver->expects($this->once())
->method('switchToIFrame')
->with('test');
->with($iframeIdentifier);

$this->session->switchToIFrame($iframeIdentifier);
}

$this->session->switchToIFrame('test');
/**
* @return array
*/
public function iFrameDataProvider()
{
return array(
'by name' => array('test'),
'by index' => array(0),
);
}

public function testExecuteScript()
Expand Down

0 comments on commit 5b96b0f

Please sign in to comment.