"Fossies" - the Fresh Open Source Software Archive

Member "selenium-selenium-4.8.1/cpp/iedriver/CommandHandlerRepository.cpp" (17 Feb 2023, 12829 Bytes) of package /linux/www/selenium-selenium-4.8.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "CommandHandlerRepository.cpp" see the Fossies "Dox" file reference documentation.

    1 // Licensed to the Software Freedom Conservancy (SFC) under one
    2 // or more contributor license agreements. See the NOTICE file
    3 // distributed with this work for additional information
    4 // regarding copyright ownership. The SFC licenses this file
    5 // to you under the Apache License, Version 2.0 (the "License");
    6 // you may not use this file except in compliance with the License.
    7 // You may obtain a copy of the License at
    8 //
    9 //     http://www.apache.org/licenses/LICENSE-2.0
   10 //
   11 // Unless required by applicable law or agreed to in writing, software
   12 // distributed under the License is distributed on an "AS IS" BASIS,
   13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14 // See the License for the specific language governing permissions and
   15 // limitations under the License.
   16 
   17 #include "CommandHandlerRepository.h"
   18 
   19 #include "command_types.h"
   20 #include "logging.h"
   21 
   22 #include "CommandHandlers/AcceptAlertCommandHandler.h"
   23 #include "CommandHandlers/ActionsCommandHandler.h"
   24 #include "CommandHandlers/AddCookieCommandHandler.h"
   25 #include "CommandHandlers/ClickElementCommandHandler.h"
   26 #include "CommandHandlers/ClearElementCommandHandler.h"
   27 #include "CommandHandlers/CloseWindowCommandHandler.h"
   28 #include "CommandHandlers/CreateNewWindowCommandHandler.h"
   29 #include "CommandHandlers/DeleteAllCookiesCommandHandler.h"
   30 #include "CommandHandlers/DeleteCookieCommandHandler.h"
   31 #include "CommandHandlers/DismissAlertCommandHandler.h"
   32 #include "CommandHandlers/ElementEqualsCommandHandler.h"
   33 #include "CommandHandlers/ExecuteAsyncScriptCommandHandler.h"
   34 #include "CommandHandlers/ExecuteScriptCommandHandler.h"
   35 #include "CommandHandlers/FindChildElementCommandHandler.h"
   36 #include "CommandHandlers/FindChildElementsCommandHandler.h"
   37 #include "CommandHandlers/FindElementCommandHandler.h"
   38 #include "CommandHandlers/FindElementsCommandHandler.h"
   39 #include "CommandHandlers/FullScreenWindowCommandHandler.h"
   40 #include "CommandHandlers/GetActiveElementCommandHandler.h"
   41 #include "CommandHandlers/GetAlertTextCommandHandler.h"
   42 #include "CommandHandlers/GetAllCookiesCommandHandler.h"
   43 #include "CommandHandlers/GetAllWindowHandlesCommandHandler.h"
   44 #include "CommandHandlers/GetCurrentUrlCommandHandler.h"
   45 #include "CommandHandlers/GetCurrentWindowHandleCommandHandler.h"
   46 #include "CommandHandlers/GetElementAttributeCommandHandler.h"
   47 #include "CommandHandlers/GetElementPropertyCommandHandler.h"
   48 #include "CommandHandlers/GetElementRectCommandHandler.h"
   49 #include "CommandHandlers/GetElementTagNameCommandHandler.h"
   50 #include "CommandHandlers/GetElementTextCommandHandler.h"
   51 #include "CommandHandlers/GetElementValueOfCssPropertyCommandHandler.h"
   52 #include "CommandHandlers/GetNamedCookieCommandHandler.h"
   53 #include "CommandHandlers/GetSessionCapabilitiesCommandHandler.h"
   54 #include "CommandHandlers/GetPageSourceCommandHandler.h"
   55 #include "CommandHandlers/GetTimeoutsCommandHandler.h"
   56 #include "CommandHandlers/GetTitleCommandHandler.h"
   57 #include "CommandHandlers/GetWindowRectCommandHandler.h"
   58 #include "CommandHandlers/GoBackCommandHandler.h"
   59 #include "CommandHandlers/GoForwardCommandHandler.h"
   60 #include "CommandHandlers/GoToUrlCommandHandler.h"
   61 #include "CommandHandlers/IsElementDisplayedCommandHandler.h"
   62 #include "CommandHandlers/IsElementEnabledCommandHandler.h"
   63 #include "CommandHandlers/IsElementSelectedCommandHandler.h"
   64 #include "CommandHandlers/MinimizeWindowCommandHandler.h"
   65 #include "CommandHandlers/MaximizeWindowCommandHandler.h"
   66 #include "CommandHandlers/NewSessionCommandHandler.h"
   67 #include "CommandHandlers/QuitCommandHandler.h"
   68 #include "CommandHandlers/RefreshCommandHandler.h"
   69 #include "CommandHandlers/ReleaseActionsCommandHandler.h"
   70 #include "CommandHandlers/ScreenshotCommandHandler.h"
   71 #include "CommandHandlers/ScreenshotElementCommandHandler.h"
   72 #include "CommandHandlers/SendKeysCommandHandler.h"
   73 #include "CommandHandlers/SendKeysToAlertCommandHandler.h"
   74 #include "CommandHandlers/SetAlertCredentialsCommandHandler.h"
   75 #include "CommandHandlers/SetTimeoutsCommandHandler.h"
   76 #include "CommandHandlers/SetWindowRectCommandHandler.h"
   77 #include "CommandHandlers/SwitchToFrameCommandHandler.h"
   78 #include "CommandHandlers/SwitchToParentFrameCommandHandler.h"
   79 #include "CommandHandlers/SwitchToWindowCommandHandler.h"
   80 #include "IECommandHandler.h"
   81 
   82 namespace webdriver {
   83 
   84 CommandHandlerRepository::CommandHandlerRepository(void) {
   85   this->PopulateCommandHandlers();
   86 }
   87 
   88 CommandHandlerRepository::~CommandHandlerRepository(void) {
   89 }
   90 
   91 bool CommandHandlerRepository::IsValidCommand(const std::string& command_name) {
   92   CommandHandlerMap::const_iterator found_iterator =
   93     this->command_handlers_.find(command_name);
   94 
   95   return found_iterator != this->command_handlers_.end();
   96 }
   97 
   98 CommandHandlerHandle CommandHandlerRepository::GetCommandHandler(const std::string& command_name) {
   99   CommandHandlerMap::const_iterator found_iterator =
  100     this->command_handlers_.find(command_name);
  101   
  102   if (found_iterator == this->command_handlers_.end()) {
  103     return NULL;
  104   }
  105 
  106   return found_iterator->second;
  107 }
  108 
  109 void CommandHandlerRepository::PopulateCommandHandlers() {
  110   LOG(TRACE) << "Entering CommandHandlerRepository::PopulateCommandHandlers";
  111 
  112   this->command_handlers_[webdriver::CommandType::NoCommand] = CommandHandlerHandle(new IECommandHandler);
  113   this->command_handlers_[webdriver::CommandType::NewSession] = CommandHandlerHandle(new NewSessionCommandHandler);
  114   this->command_handlers_[webdriver::CommandType::Quit] = CommandHandlerHandle(new QuitCommandHandler);
  115   this->command_handlers_[webdriver::CommandType::GetTimeouts] = CommandHandlerHandle(new GetTimeoutsCommandHandler);
  116   this->command_handlers_[webdriver::CommandType::SetTimeouts] = CommandHandlerHandle(new SetTimeoutsCommandHandler);
  117   this->command_handlers_[webdriver::CommandType::Get] = CommandHandlerHandle(new GoToUrlCommandHandler);
  118   this->command_handlers_[webdriver::CommandType::GetCurrentUrl] = CommandHandlerHandle(new GetCurrentUrlCommandHandler);
  119   this->command_handlers_[webdriver::CommandType::GoBack] = CommandHandlerHandle(new GoBackCommandHandler);
  120   this->command_handlers_[webdriver::CommandType::GoForward] = CommandHandlerHandle(new GoForwardCommandHandler);
  121   this->command_handlers_[webdriver::CommandType::Refresh] = CommandHandlerHandle(new RefreshCommandHandler);
  122   this->command_handlers_[webdriver::CommandType::GetTitle] = CommandHandlerHandle(new GetTitleCommandHandler);
  123   this->command_handlers_[webdriver::CommandType::GetCurrentWindowHandle] = CommandHandlerHandle(new GetCurrentWindowHandleCommandHandler);
  124   this->command_handlers_[webdriver::CommandType::CloseWindow] = CommandHandlerHandle(new CloseWindowCommandHandler);
  125   this->command_handlers_[webdriver::CommandType::SwitchToWindow] = CommandHandlerHandle(new SwitchToWindowCommandHandler);
  126   this->command_handlers_[webdriver::CommandType::GetWindowHandles] = CommandHandlerHandle(new GetAllWindowHandlesCommandHandler);
  127   this->command_handlers_[webdriver::CommandType::NewWindow] = CommandHandlerHandle(new CreateNewWindowCommandHandler);
  128   this->command_handlers_[webdriver::CommandType::SwitchToFrame] = CommandHandlerHandle(new SwitchToFrameCommandHandler);
  129   this->command_handlers_[webdriver::CommandType::SwitchToParentFrame] = CommandHandlerHandle(new SwitchToParentFrameCommandHandler);
  130   this->command_handlers_[webdriver::CommandType::GetWindowRect] = CommandHandlerHandle(new GetWindowRectCommandHandler);
  131   this->command_handlers_[webdriver::CommandType::SetWindowRect] = CommandHandlerHandle(new SetWindowRectCommandHandler);
  132   this->command_handlers_[webdriver::CommandType::MaximizeWindow] = CommandHandlerHandle(new MaximizeWindowCommandHandler);
  133   this->command_handlers_[webdriver::CommandType::MinimizeWindow] = CommandHandlerHandle(new MinimizeWindowCommandHandler);
  134   this->command_handlers_[webdriver::CommandType::FullscreenWindow] = CommandHandlerHandle(new FullScreenWindowCommandHandler);
  135   this->command_handlers_[webdriver::CommandType::GetActiveElement] = CommandHandlerHandle(new GetActiveElementCommandHandler);
  136   this->command_handlers_[webdriver::CommandType::FindElement] = CommandHandlerHandle(new FindElementCommandHandler);
  137   this->command_handlers_[webdriver::CommandType::FindElements] = CommandHandlerHandle(new FindElementsCommandHandler);
  138   this->command_handlers_[webdriver::CommandType::FindChildElement] = CommandHandlerHandle(new FindChildElementCommandHandler);
  139   this->command_handlers_[webdriver::CommandType::FindChildElements] = CommandHandlerHandle(new FindChildElementsCommandHandler);
  140   this->command_handlers_[webdriver::CommandType::IsElementSelected] = CommandHandlerHandle(new IsElementSelectedCommandHandler);
  141   this->command_handlers_[webdriver::CommandType::GetElementAttribute] = CommandHandlerHandle(new GetElementAttributeCommandHandler);
  142   this->command_handlers_[webdriver::CommandType::GetElementProperty] = CommandHandlerHandle(new GetElementPropertyCommandHandler);
  143   this->command_handlers_[webdriver::CommandType::GetElementValueOfCssProperty] = CommandHandlerHandle(new GetElementValueOfCssPropertyCommandHandler);
  144   this->command_handlers_[webdriver::CommandType::GetElementText] = CommandHandlerHandle(new GetElementTextCommandHandler);
  145   this->command_handlers_[webdriver::CommandType::GetElementTagName] = CommandHandlerHandle(new GetElementTagNameCommandHandler);
  146   this->command_handlers_[webdriver::CommandType::GetElementRect] = CommandHandlerHandle(new GetElementRectCommandHandler);
  147   this->command_handlers_[webdriver::CommandType::IsElementEnabled] = CommandHandlerHandle(new IsElementEnabledCommandHandler);
  148   this->command_handlers_[webdriver::CommandType::ClickElement] = CommandHandlerHandle(new ClickElementCommandHandler);
  149   this->command_handlers_[webdriver::CommandType::ClearElement] = CommandHandlerHandle(new ClearElementCommandHandler);
  150   this->command_handlers_[webdriver::CommandType::SendKeysToElement] = CommandHandlerHandle(new SendKeysCommandHandler);
  151   this->command_handlers_[webdriver::CommandType::GetPageSource] = CommandHandlerHandle(new GetPageSourceCommandHandler);
  152   this->command_handlers_[webdriver::CommandType::ExecuteScript] = CommandHandlerHandle(new ExecuteScriptCommandHandler);
  153   this->command_handlers_[webdriver::CommandType::ExecuteAsyncScript] = CommandHandlerHandle(new ExecuteAsyncScriptCommandHandler);
  154   this->command_handlers_[webdriver::CommandType::GetAllCookies] = CommandHandlerHandle(new GetAllCookiesCommandHandler);
  155   this->command_handlers_[webdriver::CommandType::GetNamedCookie] = CommandHandlerHandle(new GetNamedCookieCommandHandler);
  156   this->command_handlers_[webdriver::CommandType::AddCookie] = CommandHandlerHandle(new AddCookieCommandHandler);
  157   this->command_handlers_[webdriver::CommandType::DeleteNamedCookie] = CommandHandlerHandle(new DeleteCookieCommandHandler);
  158   this->command_handlers_[webdriver::CommandType::DeleteAllCookies] = CommandHandlerHandle(new DeleteAllCookiesCommandHandler);
  159   this->command_handlers_[webdriver::CommandType::Actions] = CommandHandlerHandle(new ActionsCommandHandler);
  160   this->command_handlers_[webdriver::CommandType::ReleaseActions] = CommandHandlerHandle(new ReleaseActionsCommandHandler);
  161   this->command_handlers_[webdriver::CommandType::DismissAlert] = CommandHandlerHandle(new DismissAlertCommandHandler);
  162   this->command_handlers_[webdriver::CommandType::AcceptAlert] = CommandHandlerHandle(new AcceptAlertCommandHandler);
  163   this->command_handlers_[webdriver::CommandType::GetAlertText] = CommandHandlerHandle(new GetAlertTextCommandHandler);
  164   this->command_handlers_[webdriver::CommandType::SendKeysToAlert] = CommandHandlerHandle(new SendKeysToAlertCommandHandler);
  165   this->command_handlers_[webdriver::CommandType::Screenshot] = CommandHandlerHandle(new ScreenshotCommandHandler);
  166   this->command_handlers_[webdriver::CommandType::ElementScreenshot] = CommandHandlerHandle(new ScreenshotElementCommandHandler);
  167 
  168   // Additional commands required to be supported, but not defined
  169   // in the specification.
  170   this->command_handlers_[webdriver::CommandType::SetAlertCredentials] = CommandHandlerHandle(new SetAlertCredentialsCommandHandler);
  171   this->command_handlers_[webdriver::CommandType::IsElementDisplayed] = CommandHandlerHandle(new IsElementDisplayedCommandHandler);
  172   this->command_handlers_[webdriver::CommandType::ElementEquals] = CommandHandlerHandle(new ElementEqualsCommandHandler);
  173   this->command_handlers_[webdriver::CommandType::GetSessionCapabilities] = CommandHandlerHandle(new GetSessionCapabilitiesCommandHandler);
  174 
  175   // Commands intercepted by the server before reaching the command executor
  176   this->command_handlers_[webdriver::CommandType::Status] = CommandHandlerHandle(new IECommandHandler);
  177   this->command_handlers_[webdriver::CommandType::GetSessionList] = CommandHandlerHandle(new IECommandHandler);
  178 }
  179 
  180 } // namespace webdriver