Module appium.webdriver.extensions.execute_mobile_command
Expand source code
#!/usr/bin/env python
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import Any, Dict, TypeVar
from selenium import webdriver
T = TypeVar('T', bound='ExecuteMobileCommand')
class ExecuteMobileCommand(webdriver.Remote):
def press_button(self, button_name: str) -> T:
"""Sends a physical button name to the device to simulate the user pressing.
iOS only.
Possible button names can be found in
https://github.com/appium/WebDriverAgent/blob/master/WebDriverAgentLib/Categories/XCUIDevice%2BFBHelpers.h
Args:
button_name (str): the button name to be sent to the device
Returns:
`appium.webdriver.webdriver.WebDriver`
"""
data = {
'name': button_name
}
self.execute_script('mobile: pressButton', data)
return self
@property
def battery_info(self) -> Dict[str, Any]:
"""Retrieves battery information for the device under test.
Returns:
`dict`: containing the following entries
level: Battery level in range [0.0, 1.0], where 1.0 means 100% charge.
Any value lower than 0 means the level cannot be retrieved
state: Platform-dependent battery state value.
On iOS (XCUITest):
1: Unplugged
2: Charging
3: Full
Any other value means the state cannot be retrieved
On Android (UIAutomator2):
2: Charging
3: Discharging
4: Not charging
5: Full
Any other value means the state cannot be retrieved
"""
return self.execute_script('mobile: batteryInfo')
Classes
class ExecuteMobileCommand (command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=None, browser_profile=None, proxy=None, keep_alive=False, file_detector=None, options=None)
-
Controls a browser by sending commands to a remote server. This server is expected to be running the WebDriver wire protocol as defined at https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol
:Attributes: - session_id - String ID of the browser session started and controlled by this WebDriver. - capabilities - Dictionaty of effective capabilities of this browser session as returned by the remote server. See https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities - command_executor - remote_connection.RemoteConnection object used to execute commands. - error_handler - errorhandler.ErrorHandler object used to handle errors.
Create a new driver that will issue commands using the wire protocol.
:Args: - command_executor - Either a string representing URL of the remote server or a custom remote_connection.RemoteConnection object. Defaults to 'http://127.0.0.1:4444/wd/hub'. - desired_capabilities - A dictionary of capabilities to request when starting the browser session. Required parameter. - browser_profile - A selenium.webdriver.firefox.firefox_profile.FirefoxProfile object. Only used if Firefox is requested. Optional. - proxy - A selenium.webdriver.common.proxy.Proxy object. The browser session will be started with given proxy settings, if possible. Optional. - keep_alive - Whether to configure remote_connection.RemoteConnection to use HTTP keep-alive. Defaults to False. - file_detector - Pass custom file detector object during instantiation. If None, then default LocalFileDetector() will be used. - options - instance of a driver options.Options class
Expand source code
class ExecuteMobileCommand(webdriver.Remote): def press_button(self, button_name: str) -> T: """Sends a physical button name to the device to simulate the user pressing. iOS only. Possible button names can be found in https://github.com/appium/WebDriverAgent/blob/master/WebDriverAgentLib/Categories/XCUIDevice%2BFBHelpers.h Args: button_name (str): the button name to be sent to the device Returns: `appium.webdriver.webdriver.WebDriver` """ data = { 'name': button_name } self.execute_script('mobile: pressButton', data) return self @property def battery_info(self) -> Dict[str, Any]: """Retrieves battery information for the device under test. Returns: `dict`: containing the following entries level: Battery level in range [0.0, 1.0], where 1.0 means 100% charge. Any value lower than 0 means the level cannot be retrieved state: Platform-dependent battery state value. On iOS (XCUITest): 1: Unplugged 2: Charging 3: Full Any other value means the state cannot be retrieved On Android (UIAutomator2): 2: Charging 3: Discharging 4: Not charging 5: Full Any other value means the state cannot be retrieved """ return self.execute_script('mobile: batteryInfo')
Ancestors
- selenium.webdriver.remote.webdriver.WebDriver
Subclasses
Instance variables
var battery_info
-
Retrieves battery information for the device under test.
Returns
dict
: containing the following entries level: Battery level in range [0.0, 1.0], where 1.0 means 100% charge. Any value lower than 0 means the level cannot be retrieved state: Platform-dependent battery state value. On iOS (XCUITest): 1: Unplugged 2: Charging 3: Full Any other value means the state cannot be retrieved On Android (UIAutomator2): 2: Charging 3: Discharging 4: Not charging 5: Full Any other value means the state cannot be retrievedExpand source code
@property def battery_info(self) -> Dict[str, Any]: """Retrieves battery information for the device under test. Returns: `dict`: containing the following entries level: Battery level in range [0.0, 1.0], where 1.0 means 100% charge. Any value lower than 0 means the level cannot be retrieved state: Platform-dependent battery state value. On iOS (XCUITest): 1: Unplugged 2: Charging 3: Full Any other value means the state cannot be retrieved On Android (UIAutomator2): 2: Charging 3: Discharging 4: Not charging 5: Full Any other value means the state cannot be retrieved """ return self.execute_script('mobile: batteryInfo')
Methods
-
Sends a physical button name to the device to simulate the user pressing.
iOS only. Possible button names can be found in https://github.com/appium/WebDriverAgent/blob/master/WebDriverAgentLib/Categories/XCUIDevice%2BFBHelpers.h
Args
button_name
:str
- the button name to be sent to the device
Returns
Expand source code
def press_button(self, button_name: str) -> T: """Sends a physical button name to the device to simulate the user pressing. iOS only. Possible button names can be found in https://github.com/appium/WebDriverAgent/blob/master/WebDriverAgentLib/Categories/XCUIDevice%2BFBHelpers.h Args: button_name (str): the button name to be sent to the device Returns: `appium.webdriver.webdriver.WebDriver` """ data = { 'name': button_name } self.execute_script('mobile: pressButton', data) return self