Java 如何在Appium中禁用Android设备上的wi-fi?
在我们的测试用例中:我需要在某个特定点/操作禁用Wi-Fi 我已核实:Java 如何在Appium中禁用Android设备上的wi-fi?,java,automation,appium,Java,Automation,Appium,在我们的测试用例中:我需要在某个特定点/操作禁用Wi-Fi 我已核实: driver[deviceIndex].setConnection(Connection.NONE); assertEquals(Connection.ALL, driver[deviceIndex].getConnection()); 但它什么也没做 我的期望是“关闭wi-fi”并保持移动数据打开 当前代码未执行任何操作。您需要将Apache公共语言添加到项目中。 您需要将Apache公共语言添加到您的项目中。 在app
driver[deviceIndex].setConnection(Connection.NONE);
assertEquals(Connection.ALL, driver[deviceIndex].getConnection());
但它什么也没做
我的期望是“关闭wi-fi”并保持移动数据打开
当前代码未执行任何操作。您需要将Apache公共语言添加到项目中。
您需要将Apache公共语言添加到您的项目中。
在appium中,只能使用驱动程序切换wifi网络。toggleWifi()方法。这意味着,如果wifi处于打开状态,它会将wifi更改为关闭状态,反之亦然。 要使用toggleWifi()方法,必须使用androidDriver。如果您使用的是AppiumDriver,您可以将其类型转换为AndroidDriver,如下所示
((AndroidDriver) driver).toggleWifi();
您也可以使用setNetworkConnection()方法,但它也有一定的限制。这些限制是:
在appium中,只能使用驱动程序切换wifi网络。toggleWifi()方法。这意味着,如果wifi处于打开状态,它会将wifi更改为关闭状态,反之亦然。 要使用toggleWifi()方法,必须使用androidDriver。如果您使用的是AppiumDriver,您可以将其类型转换为AndroidDriver,如下所示
((AndroidDriver) driver).toggleWifi();
您也可以使用setNetworkConnection()方法,但它也有一定的限制。这些限制是:
您使用的驱动程序类型是什么?如果你在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);
}
您使用的驱动程序类型是什么?如果你在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);
}
酷,然后上面的方法就行了……对吧?或者我需要写其他方法吗?就这样。只需添加常见的语言,它就可以工作了。还有另一种关闭它的解决方案。您可以在代码中执行该命令:adb shell am start-n io.appium.settings/.settings-e wifi offit不起作用,兄弟。添加了依赖项,并使用了与问题中提到的相同的代码,但仍然什么也不做。您使用的是什么版本的appium java客户端?appium版本:1.12.1Cool,然后上述方法将工作……对吗?或者我需要写其他方法吗?就这样。只需添加常见的语言,它就可以工作了。还有另一种关闭它的解决方案。您可以在代码中执行该命令:adb shell am start-n io.appium.settings/.settings-e wifi offit不起作用,兄弟。添加了依赖项并使用了与问题中提到的相同的代码,但仍然没有执行任何操作。您使用的appium java客户端的版本是什么?appium版本:1.12.1我正在使用“AndroidDriver”这一版本并尝试了setConnection,但它没有执行任何操作。自定义UI(Oppo,MI)是否可能出现问题?我正在使用“AndroidDriver”这一个,并尝试设置连接,但它没有执行任何操作。自定义UI(Oppo、MI)是否可能存在问题?