Appium for Android中的飞行模式启用/禁用编程

时间:2019-02-25 12:58:44

标签: android automated-tests appium

任何人都有一个有效的示例,该如何在Android版Appium中使用飞行模式进行操作?由于某些原因,appim docu出于某种原因尚未完成,没有提议的方法可以正常工作,同时还带有“此方法应该工作...”。 自星期五以来,我一直处于飞行模式,非常感谢您的帮助!

5 个答案:

答案 0 :(得分:1)

根据appium文档,您可以如下所述切换飞行模式。

driver.toggleAirplaneMode();

答案 1 :(得分:0)

我实际上并不熟悉Appium,但是您没有提到是否在appium.io文档之外寻找解决方案。我猜driver.toggleAirplaneMode()对您没有帮助?

在这种情况下,您是否尝试过在this answer from 2016中转换Python代码?

# To enable/disable flight mode
def enableFlightMode(self,context):
        driver.mobile.set_network_connection(driver.mobile.AIRPLANE_MODE)
        driver.implicitly_wait(10)
        if driver.network_connection == 1:
            self.report_pass("The network connection is disabled in the mobile and flight mode is active.")
        else:
            self.report_fail("The flight mode is not active yet!")

答案 2 :(得分:0)

Appium文档中有关于如何更改连接类型的漂亮solid introduction

Java API是herehere

driver.getConnection()将返回您的当前状态,然后您可以将其更改为所需的状态。

注意:在真实设备上更改飞行模式状态仅适用于Android 6和更低版本

答案 3 :(得分:0)

Appium文档在许多问题上还不完善,我处理飞行模式和wifi的两种工作方法都在这里:

    @SuppressWarnings("rawtypes")
public void pressFlightMode(int waitingTime){
    if (isIOS()) {
        //should be implemented
    } else {
    try {
            ((AndroidDriver)driver).toggleAirplaneMode();
            sleep(waitingTime);
        } catch (Exception e ) {
            System.out.println("Error turning on flight mode.");
     }
    }
}

@SuppressWarnings("rawtypes")
public void pressWifi(int waitingTime){
    if (isIOS()) {
        //to be implemented     
        } else {
            try {
                ((AndroidDriver)driver).toggleWifi();            
                sleep(waitingTime);
            } catch (Exception e ) {
                System.out.println("Error turning off flight mode.");
            }
        }
}

答案 4 :(得分:0)

在最新的Android版本中,已禁用启用和禁用飞行模式的权限,但是您可以使用以下命令来实现 在Appium最新的Java客户端中,您可以使用

要在Android中禁用Wifi和数据:

driver.setConnection(new ConnectionStateBuilder()。withWiFiDisabled()。withDataDisabled()。build());

要在Android中启用WiFI和数据: driver.setConnection(new ConnectionStateBuilder()。withWiFiEnabled()。withDataEnabled()。build());