diff options
| author | jmikhail@google.com <jmikhail@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-23 22:24:14 +0000 |
|---|---|---|
| committer | jmikhail@google.com <jmikhail@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-23 22:24:14 +0000 |
| commit | 74ddb63b51aadad80a1f00e6fa6746eb31d3cc71 (patch) | |
| tree | a2aa3b7c06b929887d03ab8ba4537974ae81e4a9 /chrome/test/webdriver/commands/find_element_commands.h | |
| parent | f5494d49ab74e3d116540b14db3457558f54c88e (diff) | |
| download | chromium_src-74ddb63b51aadad80a1f00e6fa6746eb31d3cc71.zip chromium_src-74ddb63b51aadad80a1f00e6fa6746eb31d3cc71.tar.gz chromium_src-74ddb63b51aadad80a1f00e6fa6746eb31d3cc71.tar.bz2 | |
Implemnts the commands in webdriver to preform searching of elements on a page.
/session/:sessionId/timeouts/implicit_wait
/session/:sessionId/element
/session/:sessionId/elements
/session/:sessionId/element/:id/element
/session/:sessionId/element/:id/elements
BUG=none
TEST=webdriver_remote_tests.py
Review URL: http://codereview.chromium.org/3643002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70107 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/webdriver/commands/find_element_commands.h')
| -rw-r--r-- | chrome/test/webdriver/commands/find_element_commands.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/chrome/test/webdriver/commands/find_element_commands.h b/chrome/test/webdriver/commands/find_element_commands.h new file mode 100644 index 0000000..cc45d10 --- /dev/null +++ b/chrome/test/webdriver/commands/find_element_commands.h @@ -0,0 +1,74 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_TEST_WEBDRIVER_COMMANDS_FIND_ELEMENT_COMMANDS_H_ +#define CHROME_TEST_WEBDRIVER_COMMANDS_FIND_ELEMENT_COMMANDS_H_ + +#include <string> +#include <vector> + +#include "chrome/test/webdriver/commands/command.h" +#include "chrome/test/webdriver/commands/webdriver_command.h" + +namespace webdriver { + +// Base class for searching a page, this class can find either a single +// webelement or return multiple matches. +class FindElementCommand : public WebDriverCommand { + public: + FindElementCommand(const std::vector<std::string>& path_segments, + const DictionaryValue* const parameters, + const bool find_one_element) + : WebDriverCommand(path_segments, parameters), + find_one_element_(find_one_element) {} + virtual ~FindElementCommand() {} + + virtual bool Init(Response* const response); + + virtual bool DoesPost() { return true; } + virtual void ExecutePost(Response* const response); + + private: + virtual bool RequiresValidTab() { return false; } + const bool find_one_element_; + std::string root_element_id_; + std::string use_; + std::string value_; + + DISALLOW_COPY_AND_ASSIGN(FindElementCommand); +}; + +// Search for an element on the page, starting from the document root. +// The located element will be returned as a WebElement JSON object. See: +// http://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/element +class FindOneElementCommand : public FindElementCommand { + public: + FindOneElementCommand(const std::vector<std::string>& path_segments, + const DictionaryValue* const parameters) + : FindElementCommand(path_segments, parameters, true) {} + virtual ~FindOneElementCommand() {} + + private: + DISALLOW_COPY_AND_ASSIGN(FindOneElementCommand); +}; + +// Search for multiple elements on the page, starting from the identified +// element. The located elements will be returned as a WebElement JSON +// objects. See: +// http://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/elements +class FindManyElementsCommand : public FindElementCommand { + public: + FindManyElementsCommand(const std::vector<std::string>& path_segments, + const DictionaryValue* const parameters) + : FindElementCommand(path_segments, parameters, false) {} + virtual ~FindManyElementsCommand() {} + + private: + DISALLOW_COPY_AND_ASSIGN(FindManyElementsCommand); +}; + +} // namespace webdriver + +#endif // CHROME_TEST_WEBDRIVER_COMMANDS_FIND_ELEMENT_COMMANDS_H_ + |
