今天在学习appium操作微信小程序时,需在微信首页向下滑动才能找到小程序入口,实现时发现能够调起微信,但是不能滑动,附上代码:
from appiumimport webdriver
from timeimport sleep
desired_caps = {}
desired_caps['platformName'] ='Android'
desired_caps['platformVersion'] ='9'
desired_caps['deviceName'] ='XiaoMi8'
desired_caps['appPackage'] ='com.tencent.mm'
desired_caps['appActivity'] ='.ui.LauncherUI'
desired_caps['noReset'] =True #不重置应用数据
desired_caps['fastReset'] ="false"
desired_caps['fullReset'] ="false"
desired_caps['chromeOptions'] = {
'androidProcess':'com.tencent.mm:appbrand0'
}
#appium连接
#打开微信
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
#向下滑动微信
window = driver.get_window_size()
x = window["width"] *0.5 #横轴不变
y1 = window["height"] *0.2 #起始纵轴
y2 = window["height"] *0.8 #结束纵轴
driver.swipe(x,y1,x,y2)
sleep(10)
driver.quit()
运行后报错如下:
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Failed to launch Appium Settings app: Condition unmet after 5097 ms. Timing out.
谷歌翻译:selenium.common.exceptions.WebDriverException:消息:处理命令时发生未知的服务器端错误。 原始错误:无法启动Appium设置应用程序:5097毫秒后条件未满足。 超时。
奇怪~
重新运行,发现微信调起来之后,后面的滑动操作没有运行~
--手机没连上adb?不不不,没连上的话微信都不可能调起来
--appium权限不够?关闭appium重新以管理员身份运行。再次运行还是报错
看来问题还是出现在滑动操作代码上,注释掉滑动操作代码后运行没有报错,没错了!就在这里。查看代码并没有发现哪里有问题,我**口吐芬芳~
于是使用appium Inspector连接,进行滑动操作,发现同样不能操作!
错误如下:
Call to 'tap' failed
[performTouchAction([{"action":"tap","options":{"x":486,"y":486}}])] Error response status: 13, , UnknownError - An unknown server-side error occurred while processing the command. Selenium error: An unknown server-side error occurred while processing the command. Original error: java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
于是,开始百度寻大神解决方案。经过近2个小时不懈努力,终于让我找见一遍看着靠谱的方法,而他的解决方案非常简单,就是在 开发者选项 中,将 【允许通过USB调试修改权限或模拟点击】打开
我**,再次口吐芬芳~
赶紧试试!!!
先用appium Inspector试试看
发现点击,滑动动作都没有报错!
再运行代码看看
没有报错,问题解决!还真是被自己蠢哭了!!!