如何在Appium中的Android设备上禁用Wi-Fi?

时间:2019-05-27 09:36:16

标签: java automation appium

在我们的测试案例中:我需要在某些特定的点/操作上禁用Wi-Fi。

我已验证:

driver[deviceIndex].setConnection(Connection.NONE);
assertEquals(Connection.ALL, driver[deviceIndex].getConnection());

但是它什么也没做。

我的期望是“关闭wi-fi”并保持打开移动数据。

当前代码不执行任何操作。

3 个答案:

答案 0 :(得分:0)

您需要将Apache通用lang添加到您的项目中。 https://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.9

答案 1 :(得分:0)

在appium中,您只能使用 driver.toggleWifi()方法切换wifi网络。这意味着如果它处于开启状态,它将把wifi更改为关闭状态,反之亦然。 要使用toggleWifi()方法,您必须使用androidDriver。如果您使用的是AppiumDriver,则可以按如下所示将其转换为AndroidDriver。

((AndroidDriver) driver).toggleWifi();

您也可以使用 setNetworkConnection()方法,但是它也有一定的局限性。限制是:

Limitation of using setNetworkConnection

答案 2 :(得分:0)

您使用的驱动程序是什么类型?如果您使用的是Android,则应使用AndroidDriver。这是我的工作代码。

// turn on all (data and wi-fi)
public void turnOnAllData() {
    driver.setConnection(Connection.ALL);

}

// turn off all (data and wi-fi)
public void turnOffAllData() {
    driver.setConnection(Connection.NONE);

}

// turn on airplane
public void turnOnAirplaneMode() {
    driver.setConnection(Connection.AIRPLANE);
}

// turn on data
public void turnOnMobileData() {
    driver.setConnection(Connection.DATA);
}

// turn on wi-fi
public void turnOnWiFi() {
    driver.setConnection(Connection.WIFI);

}