使用:selenium webdriver,rubygems,appium,android和ios设备
我正在测试的应用程序有一个按钮,该按钮仅在连接到特定无线网络时才会启用。我想创建一个脚本来检查按钮是否处于活动状态
vKioskStatus = element.enabled?
puts(vKioskStatus)
如果它不活跃,那么我想改变wifi网络。是否可以在移动设备上自动更改网络?
更新
尝试使用getNetworkConnection时收到以下错误。是否需要添加?
<main>': undefined method `getNetworkConnection' for #<Selenium::WebDriver::Driver:0x..fe1a5511e browser=:firefox> (NoMethodError)
这是我的代码:
require 'rubygems'
require 'selenium-webdriver'
require 'uri'
require 'appium_lib'
require_relative 'AndroidLib'
cButton = Buttons.new
driver = Selenium::WebDriver.for(:remote, :url => "http://127.0.0.1:4723/wd/hub") # Works for Android
sleep(5)
bob = driver.getNetworkConnection()
puts bob
答案 0 :(得分:1)
您可以使用以下appium命令切换Android中的wifi连接(iOS中不可用),
启用航班模式:
# Python
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!")
并禁用飞行模式:
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!")
答案 1 :(得分:0)
您可以通过使用Shell脚本访问所有可用的WiFi网络来实现此目的。这意味着您需要编写通过代码触发ADB / Shell命令的逻辑。Connecting to wifi using adb shell
点击按钮,您可以触发命令连接到所需的wifi网络。
答案 2 :(得分:0)
您可以通过AndroidDriver获取/更改网络连接设置。但是,它仅适用于少于5的Android版本。
AppiumDriver<WebElement> driver = new AndroidDriver<WebElement>(new URL("..."), caps);
NetworkConnectionSetting networkConnection = new NetworkConnectionSetting(false, true, false); // airplane mode, wiif, data
networkConnection.setData(true); // enable mobile data
networkConnection.setWifi(false); // close wifi
((AndroidDriver<WebElement>)driver).setNetworkConnection(networkConnection);
networkConnection = ((AndroidDriver<WebElement>)driver).getNetworkConnection();
答案 3 :(得分:0)
此 ADB 命令肯定会关闭您的wifi:
[0-9]$
要启用它,请使用:
adb shell am broadcast -a io.appium.settings.wifi --es setstatus disable
尝试此代码-
adb shell am broadcast -a io.appium.settings.wifi --es setstatus enable
如果它适合您,请给我一个重击