IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> appium启动失败的一些坑(已解决)(二) -> 正文阅读

[移动开发]appium启动失败的一些坑(已解决)(二)

相信很多新手跟我一样,在安装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()

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

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:27:21  更:2021-11-22 12:29:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:41:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码