要想绘制锁屏,首先要进入到绘制屏幕的设置中
第一步 进入手机设置界面
这里的xpath我要解释一下,因为查抄元素全是xpath,所以我定义了一个方法,简化代码
第二步 进入绘制锁屏界面
action是创建了一个TouchAction对象,我用的TouchAction操作的,但是它会提示已经过时了这种方法,但初学阶段我也就会这种方法,大家见谅。
创建对象的方式和导包会在最后全部代码里给出。
第三步 绘制图案
步骤结束,全部代码奉上,有不好的地方或是不对的,欢迎提意见,初学阶段,接受不足那是最好的。
from appium import webdriver
import timefrom appium.webdriver.common.touch_action import TouchActionfrom selenium.webdriver.common.by import Bydesired_caps = {}
# 当前所测试的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = 'Android'
# 系统的版本
desired_caps['platformVersion'] = '7.1'
# 要启动的app的名称(唯一标识,包名)
desired_caps["appPackage"] = 'com.android.launcher3'
# 要启动的app的哪个界面
desired_caps["appActivity"] = '.launcher3.Launcher'driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps)
time.sleep(5)
action = TouchAction(driver)def xpath(element):return driver.find_element(By.XPATH, element)# 点击工具
xpath("//*[@text='工具']").click()
time.sleep(2)
# 点击设置
xpath("//*[@text='设置']").click()time.sleep(2)
# 因为"安全"在下面,被遮挡了,所以要把屏幕滑上去,安全才会出来。如果强制点击安全会提示找不到
action.press(xpath("//*[@text='声音']")).wait(500).move_to(xpath("//*[@text='WLAN']")).release().perform()
time.sleep(3)
# 点击安全
xpath("//*[@text='安全']").click()
time.sleep(2)
# 点击屏幕锁定
xpath("//*[@text='屏幕锁定']").click()
time.sleep(2)
# 点击图案
xpath("//*[@text='图案']").click()
time.sleep(2)
# 根据每个点的坐标进行绘制
action.press(x=105, y=452).wait(500).move_to(x=270, y=452).wait(500).move_to(x=270, y=616).move_to(x=269, y=780).wait(500).move_to(x=436, y=780).release().perform()
time.sleep(5)
# 绘制完点击清除和确认都可以,这个看心情
xpath("//*[@text='清除']").click()time.sleep(2)
driver.close_app()
driver.quit()