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 retrieved

Expand 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

def press_button(self, button_name)

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

WebDriver

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