当前位置:首页 » 《随便一记》 » 正文

appium启动失败的一些坑(已解决)(二)_小宝的博客

14 人参与  2022年05月19日 11:43  分类 : 《随便一记》  评论

点击全文阅读


相信很多新手跟我一样,在安装Java跟SDK 环境上花了很多时间,在终端显示配置信息没出错,但是跑代码的时候就是起不来,总结一下几点:
一、缺少.jar文件,这个在前一篇文章有详细描述
二、当我们查找不出是什么问题的时候,建议更换一下SDK包,我卡在这步一天,最后终于得到了解决
关于appium的安装过程,参考一下这位大哥的:https://blog.csdn.net/freeking101/article/details/107881979
这里放上我的SDK安装包,各位有需要的可以自行下载:

链接:https://pan.baidu.com/s/1GK8hwF90qG_8DmnpxG9ttQ 
提取码:mn80

下面是一些关于自动化的入门代码:

1、入门调试

from appium import webdriver
import time

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1.2"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.ss.android.ugc.aweme"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".splash.SplashActivity t9"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

time.sleep(10)
print(driver.page_source)

# 关闭app
driver.close_app()
# 释放资源
driver.quit()

2、查找元素

from appium import webdriver
import time

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.android.settings"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".Settings"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

print(driver.current_package)
print(driver.current_activity)
time.sleep(1)
# print(driver.page_source)

# 在Android手机中 text并不是文本 而是属于标签的属性
# driver.find_element_by_xpath("//*[text()='显示']").click()

el= driver.find_element_by_xpath("//*[@text='显示']")

print(el.size)
print(el.text)
print(el.get_attribute("text"))
print(el.location)
time.sleep(1)
print(driver.current_package)
print(driver.current_activity)

time.sleep(3)
# 关闭app
driver.close_app()
# 释放资源
driver.quit()

3、基本操作

from appium import webdriver
import time

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1.2"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.android.settings"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".Settings"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

time.sleep(1)

# driver.install_app(r"C:\Users\bcc\Desktop\pycode\appcode\iBiliPlayer-bili.apk")

if driver.is_app_installed("tv.danmaku.bili"):
    driver.remove_app("tv.danmaku.bili")

driver.find_element_by_xpath("//*[@resource-id='com.android.settings:id/search']").click()

time.sleep(1)
driver.find_element_by_xpath("//*[@resource-id='android:id/search_src_text']").send_keys("abc")
driver.find_element_by_xpath("//*[@resource-id='android:id/search_src_text']").send_keys("123")
driver.find_element_by_xpath("//*[@resource-id='android:id/search_src_text']").send_keys("张三")

time.sleep(2)
driver.find_element_by_xpath("//*[@resource-id='android:id/search_src_text']").clear()


# 关闭app
driver.close_app()

time.sleep(2)
# 释放资源
driver.quit()

4、模拟手势

from appium import webdriver
import time

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.android.settings"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".Settings"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

time.sleep(1)

# 获取当前屏幕的分辨率
size = driver.get_window_size()
print(size)
width = size["width"]
height = size["height"]

driver.swipe(start_x=width/2,start_y=height/3*2,end_x=width/2,end_y=height/3)

# el1 = driver.find_element_by_xpath("//*[@text='通知']")
# el2 = driver.find_element_by_xpath("//*[@text='WLAN']")
#
# driver.scroll(el1,el2)
time.sleep(2)



# 关闭app
driver.close_app()

time.sleep(2)
# 释放资源
driver.quit()

5、拖拽

from appium import webdriver
import time

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.vphone.launcher"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".launcher3.Launcher"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

time.sleep(1)
el1 = driver.find_element_by_xpath("//*[@text='酷安']")
el2 = driver.find_element_by_xpath("//*[@text='京东']")


driver.drag_and_drop(el1,el2)

time.sleep(2)

# 关闭app
driver.close_app()
# 释放资源
driver.quit()

6、高级模拟手势

from appium import webdriver
import time
from appium.webdriver.common.touch_action import TouchAction

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.android.settings"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".Settings"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

time.sleep(1)

el1 = driver.find_element_by_xpath("//*[@text='通知']")
el2 = driver.find_element_by_xpath("//*[@text='WLAN']")

# 实例化TouchAction
action = TouchAction(driver)
# press 既可以使用 坐标 也可以使用元素

# 在移动的过程中 wait是必不可少
# action.press(el1).wait(500).move_to(el2)
action.press(x=270,y=640).wait(500).move_to(x=270,y=320)
action.release()

# 执行  模拟手势的使用  TouchAction 进行模拟手势的时候  一定要记得执行操作
action.perform()
time.sleep(3)

# 关闭app
driver.close_app()
# 释放资源
driver.quit()

7、滑动案例

from appium import webdriver
import time
from appium.webdriver.common.touch_action import TouchAction

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.android.settings"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".Settings"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

time.sleep(1)

el1 = driver.find_element_by_xpath("//*[@text='声音']")
el2 = driver.find_element_by_xpath("//*[@text='WLAN']")

action = TouchAction(driver)
action.press(el1).wait(500).move_to(el2)
action.release()

# 需要执行上面的操作
action.perform()
time.sleep(1)

driver.find_element_by_xpath("//*[@text='安全']").click()
time.sleep(1)
driver.find_element_by_xpath("//*[@text='屏幕锁定']").click()
time.sleep(1)
driver.find_element_by_xpath("//*[@text='图案']").click()
time.sleep(1)

# 按下的位置 105 450  x 165  y 165

action.press(x=105,y=450).wait(200).move_to(x=270,y=450).wait(200).move_to(x=435,y=450).wait(200).move_to(x=270,y=615)\
    .wait(200).move_to(x=105,y=780).wait(200).move_to(x=270,y=780).wait(200).move_to(x=435,y=780)
action.release()
action.perform()



time.sleep(2)
# 关闭app
driver.close_app()
# 释放资源
driver.quit()

8、其他操作

from appium import webdriver
import time

# 连接移动设备所必须的参数
desired_caps = {}

# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.android.settings"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".Settings"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

time.sleep(1)
# print(driver.page_source)
print(driver.device_time)

print(driver.network_connection)

driver.get_screenshot_as_file("jietu.png")

# driver.save_screenshot()
driver.open_notifications()

time.sleep(3)
# 关闭app
driver.close_app()
# 释放资源
driver.quit()

最后我用的是夜神模拟器,可以不用连接手机


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/40436.html

名称  启动  设备  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 终章小说苏时梨顾屿舟如今却像是一把把刀,直戳我的心窝子小说(苏时梨顾屿舟)已更新+番外篇章(如今却像是一把把刀,直戳我的心窝子)无广告
  • 50万荔枝被吃后,骂我窝囊的妻子悔疯了新上热文_赵倩小恒阿姨大结局_小说后续在线阅读_无删减免费完结_
  • 女娲后人被送上审判台后天幕降临了免费赏析_灵儿祝跃白怜全文_小说后续在线阅读_无删减免费完结_
  • 前传_笔趣阁(洛妗依慕瑾怀)洛妗依慕瑾怀小说(他道歉,她就必须接受吗?)章节在线阅读
  • 如今却像是一把把刀,直戳我的心窝子小说(苏时梨顾屿舟)全文+后续(如今却像是一把把刀,直戳我的心窝子)畅享阅读
  • (芮宁周津嗣)离婚后,前夫他从六年前回来了芮宁周津嗣无删减小说在线无广告高口碑小说
  • 毕业旅行时,全班坐上驶向深山的大巴车在线阅读_齐修钟明娇晚晚快手热门_小说后续在线阅读_无删减免费完结_
  • 丈夫死后,婆婆怀上他和青梅的孩子新上_青梅陈纪文婆婆更新_小说后续在线阅读_无删减免费完结_
  • 她死三年,霍总红眼挖坟撞墓碑:+后续现已上架(霍绍梃苏楚):结局+番外评价五颗星
  • 偏心父亲为救大儿子用我抵债,后悔疯了隐藏剧情_罗嘉婷婷青岚爽文_小说后续在线阅读_无删减免费完结_
  • 前妻惊艳回国后,乔总跪求父凭女贵小说(苏禾乔南州)章节目录+起点章节(前妻惊艳回国后,乔总跪求父凭女贵)全篇清爽版在线
  • 订婚当天,老公的白月光出狱了完结爽文_谢景川程依陆恒无错版_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1