The LegacyWindow class in the master branch no longer includes a window handle (or current for the current window) in the made cURL requests to the Selenium server. This results in the /session/{sessionId}/window/size URL instead of the /session/{sessionId}/window/{windowHandle}/size URL.
Constructor declaration change fixes all window commands, except for the LegacyWindow::getHandle method:
if ($windowHandle === null) {
$windowHandle = 'current';
}
parent::__construct($url . '/' . $windowHandle);
// The "current" meta-handle isn't accepted by any other command.
if ($windowHandle !== 'current') {
$this->windowHandle = $windowHandle;
}
With the above fix the LegacyWindow::getHandle now queries the /session/{sessionId}/window/{windowHandle}_handle URL instead of the /session/{sessionId}/window_handle.
Since the \WebDriver\AbstractWebDriver::curl method can't subtract URL parts, then the only way to fix this was actually to implement all the window manipulation methods instead of relying on the AbstractWebDriver::__call method.
P.S.
Apparently, the JsonWireProtocol supports resizing of the non-active windows, which W3C does not allow.
The
LegacyWindow
class in themaster
branch no longer includes a window handle (orcurrent
for the current window) in the made cURL requests to the Selenium server. This results in the/session/{sessionId}/window/size
URL instead of the/session/{sessionId}/window/{windowHandle}/size
URL.Constructor declaration change fixes all window commands, except for the
LegacyWindow::getHandle
method:With the above fix the
LegacyWindow::getHandle
now queries the/session/{sessionId}/window/{windowHandle}_handle
URL instead of the/session/{sessionId}/window_handle
.Since the
\WebDriver\AbstractWebDriver::curl
method can't subtract URL parts, then the only way to fix this was actually to implement all the window manipulation methods instead of relying on theAbstractWebDriver::__call
method.P.S. Apparently, the JsonWireProtocol supports resizing of the non-active windows, which W3C does not allow.