Skip to content

Commit 5135379

Browse files
andrewnicolsOndraM
authored andcommitted
Make GET_ACTIVE_ELEMENT a GET for W3C
As defined in the specification 12.2.6: HTTP Method URI Template GET /session/{session id}/element/active Source: https://www.w3.org/TR/webdriver/#get-active-element
1 parent 98686d9 commit 5135379

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

lib/Remote/HttpCommandExecutor.php

+1
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ class HttpCommandExecutor implements WebDriverCommandExecutor
146146
DriverCommand::DISMISS_ALERT => ['method' => 'POST', 'url' => '/session/:sessionId/alert/dismiss'],
147147
DriverCommand::EXECUTE_ASYNC_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute/async'],
148148
DriverCommand::EXECUTE_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute/sync'],
149+
DriverCommand::GET_ACTIVE_ELEMENT => ['method' => 'GET', 'url' => '/session/:sessionId/element/active'],
149150
DriverCommand::GET_ALERT_TEXT => ['method' => 'GET', 'url' => '/session/:sessionId/alert/text'],
150151
DriverCommand::GET_CURRENT_WINDOW_HANDLE => ['method' => 'GET', 'url' => '/session/:sessionId/window'],
151152
DriverCommand::GET_ELEMENT_LOCATION => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/rect'],

tests/functional/RemoteTargetLocatorTest.php

+19
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Facebook\WebDriver;
1717

18+
use Facebook\WebDriver\Remote\RemoteWebElement;
19+
1820
/**
1921
* @covers \Facebook\WebDriver\Remote\RemoteTargetLocator
2022
*/
@@ -52,4 +54,21 @@ public function testShouldSwitchToWindow()
5254
$this->assertContains('index.html', $this->driver->getCurrentURL());
5355
$this->assertNotSame($originalWindowHandle, $this->driver->getWindowHandle());
5456
}
57+
58+
/**
59+
* @cover ::activeElement
60+
*/
61+
public function testActiveElement()
62+
{
63+
$this->driver->get($this->getTestPageUrl('index.html'));
64+
65+
$activeElement = $this->driver->switchTo()->activeElement();
66+
$this->assertInstanceOf(RemoteWebElement::class, $activeElement);
67+
$this->assertSame('body', $activeElement->getTagName());
68+
69+
$this->driver->findElement(WebDriverBy::name('test_name'))->click();
70+
$activeElement = $this->driver->switchTo()->activeElement();
71+
$this->assertSame('input', $activeElement->getTagName());
72+
$this->assertSame('test_name', $activeElement->getAttribute('name'));
73+
}
5574
}

0 commit comments

Comments
 (0)