手机设置下的屏幕亮度控制条看上去是悬浮的,想手动调整亮度有两种方法:一、在控制条上左右任意拖动;二、在控制条上点击任意一点。如下图:
同样,Appium也可以用两种方式实现自动操作,第一种是用swipe方法横向任意拖动控制条,实现代码如下:
1 from appium import webdriver 2 from time import sleep 3 4 caps = { 5 "platformName":"Android", 6 "platformVersion":"8.0.0", 7 "deviceName":"Phone", 8 "appPackage":"com.android.settings", 9 "appActivity":".Settings" 10 } 11 12 driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) 13 14 sleep(1) 15 driver.find_element_by_xpath("//android.widget.TextView[@text='Display']").click() 16 driver.find_element_by_xpath("//android.widget.TextView[@text='Brightness level']").click() 17 control_bar = driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.SeekBar")') #使用uiautomator搭配class属性方法定位控制条 18 control_bar_x = control_bar.location.get('x') #获取控制条初始横坐标 19 control_bar_y = control_bar.location.get('y') #获取控制条初始纵坐标 20 21 driver.swipe(control_bar_x,control_bar_y,control_bar_x+400,control_bar_y,500) #用swipe方法横向拖动控制条,control_bar_y不变,control_bar_x+400 22 23 sleep(1) 24 driver.press_keycode(4) #模拟按手机返回键 25 26 sleep(2) 27 driver.quit()
第二种是用tap方法点击控制条上任意一点,实现代码如下:
1 from appium import webdriver 2 from time import sleep 3 4 caps = { 5 "platformName":"Android", 6 "platformVersion":"8.0.0", 7 "deviceName":"Phone", 8 "appPackage":"com.android.settings", 9 "appActivity":".Settings" 10 } 11 12 driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) 13 14 sleep(1) 15 driver.find_element_by_xpath("//android.widget.TextView[@text='Display']").click() 16 driver.find_element_by_xpath("//android.widget.TextView[@text='Brightness level']").click() 17 control_bar = driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.SeekBar")') #使用uiautomator搭配class属性方法定位控制条 18 control_bar_x = control_bar.location.get('x') #获取控制条初始横坐标 19 control_bar_y = control_bar.location.get('y') #获取控制条初始纵坐标 20 21 driver.tap([(control_bar_x,control_bar_y)],500) #用tap方法点击拖动控制条的初始位置 22 driver.tap([(control_bar_x+400,control_bar_y)],500) #用tap方法横向点击控制条的任意一点,即control_bar_x+400,control_bar_y不变 23 24 sleep(1) 25 driver.press_keycode(4) #模拟按手机返回键 26 27 sleep(2) 28 driver.quit()