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 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> appium代码-在pycharm中打开后出现的问题(总结) -> 正文阅读

[Python知识库]appium代码-在pycharm中打开后出现的问题(总结)

如果是加载界面的过程中报错

这种,如果代码没有问题,就是页面没有加载出来执行代码错误,需要设置延迟时间

import time
time.sleep(10)

滑动界面报错

如果是滑动界面操作,报错,那就可能是因为没有设置(x,y)轴坐标导致的,需要设置坐标轴

执行当前文件

如果遇到执行py文件,执行文件错误的情况下,可能执行的文件不是当前文件

快捷键Ctrl+Shift+F10

怎么在代码内启动其他应用并且输入包名和界面名称

driver.start_activity("包名","界面名")


time.sleep(3)#等待3秒
driver.start_activity("com.baidu.searchbox","com.baidu.searchbox.MainActivity")#启动百度应用
time.sleep(2)
print(driver.current_package)#获取包名
print(driver.current_activity)#获取启动页面名

通过代码关闭应用和驱动对象

#关闭app和驱动对象(应用场景)有时候我们需要关闭某个应用程序后,在打开新的应用,相当于上滑退出应用,启动新应用)
#方法:
driver.close_app()#关闭当前操作的app,不会关闭驱动对象(可以获取包名)
driver.quit()#关闭驱动对象,同时关闭所有关联的app(不能在获取包名,因为所有程序都被杀掉了)

安装应用/卸载应用(及验证是否安装应用)

#场景:有一些应用市场软件可能会有一个按钮(安装按钮,卸载按钮,更新按钮),如果某个程序已经安装就卸载,繁殖就安装
if driver.is_app_installed("com.baidu.searchbox"):#判断是否安装了百度()里面传的是包名
    driver.remove_app("com.baidu.searchbox")#安装了,执行卸载命令
else:#反之
    deriver.install_app("/users/ceshi/baidu.apk")#执行安装命令()里面填写的是安装地址

应用进入后台

有些应用会设置进入后台多少秒钟,热启动就需要重新验证的情况,所以模拟该场景就需要当前代码

#场景:模拟app-HOME键,将app放到后台,并热启动(PS:如果应用没有被杀掉就是热启动,如果已经杀掉就是冷启动)
print("----------准备进入后台-------------")#这个是为了方便查看进入后台代码执行情况
driver.background_app(5)#进入后台5秒,并自动回到前台
print("-----------已经回到前台-------------")

启动本地程序

启动报错(代码也是正确的,但是就是报错,后来,我重新启动了appium发现可以了)

元素定位

单个元素定位

这个element代表定位单个元素

#定位一个元素(重要)
#应用场景:想要对某个按钮进入点击操作,想要对输入框进行输入,想要获取文本框内容,定位元素是自动化操作必须要使用的方法
        #只有获取元素之后,才能对元素进行定位操作(有三个方法)
 #第一个:通过id定位元素(id_value:对应的id是resource-id的选择器)
driver.find_element(by=AppiumBy.ID, value="com.gaomon.smart:id/btn_login").click()#通过id定位login按钮,定进行点击操作
driver.find_element(by=AppiumBy.CLASS_NAME,value="android.widget.TextView").click()#通过CLASS_NAME定位login按钮,定进行点击操作
driver.find_element(by=AppiumBy.XPATH,value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.ImageView").click()#通过XPATH定位login按钮,定进行点击操作

一组元素定位

如果遇到元素属性一样的情况,就需要用到一组元素定位的方法去定位元素的位置

elements代表定位一组元素

[2]代表我定位的是列表中第二个元素

#如果元素属性值相同,点击自己想要的元素,需要先获取元素的位置(需要定位一组元素,在一组元素中定位启动的某个元素的属性)
driver.find_elements(by=AppiumBy.CLASS_NAME,value="android.widget.RelativeLayout")[2].click()
print("------进入控制面板-------------")

还有另外一种情况,就是你不确定这组元素中哪个是自己需要的哪个,那就需要把元素打印出来,就可以直观的看到自己想要的元素的位置

titles=driver.find_elements(by=AppiumBy.CLASS_NAME,value="android.widget.RelativeLayout")
for title in titles:#打印元素列表
    print(title.text)

如果需要通过ID,只需要把方法名和里面的字符串就可以了

titles=driver.find_elements(by=AppiumBy.ID,value="com.gaomon.smart:id/tv_choose_home_name")
for title in titles:#打印元素列表
    print(title.text)

如果通过XPATH

shebeis=driver.find_elements(by=AppiumBy.XPATH,value="//*[@text='Test Home']")
for shebei in shebeis:
    print(shebei.text)

只有一个text,没有相同值的时候

多个元素都有相同的text的时候

shebeis=driver.find_elements(by=AppiumBy.XPATH,value="//*[contains(@text,'Home')]")
for shebei in shebeis:
    print(shebei.text)

python注释代码的几种方法

多行注释

单行注释

?python常见的几种报错提示,快速的找到原因

提示给定的参数无法定位的(这两个提示都是因为参数有误无法定位或者没有参数导致的)

提示:exceptions.NOSuchElement Exception:Message:An element could not be located on the page using the given search......

python中,可执行的操作

.click()#点击
.send_keys("")#对输入框进行输入

输出:
print(----------------)

print(对象)#输出元素

print(len(对象))#获取元素总数

for title in 对象
    print(title.text)#对象文本

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:28:59  更:2022-10-17 12:32:47 
 
开发: 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/17 4:24:16-

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