一、定位元素
<a herf = "www.baidu.com">你好</a> #你好就是a标签的text, herf指的是a标签的属性
<a herf = "www.baidu.com" /> #若只有标签属性则表示为这种形式
driver.find_element_by_xpath("//*[text()='显示']").click() #定位不到
原因是:
<android.widget.TextView index="0" package="com.android.settings" class="android.widget.TextView" text="显示" resource-id="android:id/title" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[72,663][104,685]" displayed="true" /> 只有标签属性
Android手机中,text并不是文本,而是属于标签的属性
driver.find_element_by_xpath("//*[@text='显示']").click() #可以定位到
二、基础操作
基础API
driver.
close_app() 关闭打开的应用
quite() 断开连接
install_app('apk 在电脑的绝对路径') 安装应用
remove_app('应用的包名') 卸载应用
is_app_installed('应用的包名') 判断应用是否安装
push_file(目标位置,base64编码的内容)
pull_file(来源位置) 返回值是base64编码的内容
page_sourse 获取界面xml源码
find_element...
find_elements...
current_package 获取当前操作的应用的包名
current_activity 获取当前操作的界面的名称
element.
text 获取元素文本内容
click() 点击元素对应位置
get_attribute(属性名称) 获取属性值
location 获取元素左上角的坐标
size 获取原色的宽高
三、输入文本
对于有些元素,可以接受文本输入
如果对于同一个元素,多次调用此方法,会先一个一个删除掉原有内容,再输入
.send_keys(文本内容)
.clear() 清空文本框中的内容
from appium import webdriver
import time
#server 启动参数
desired_caps={}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7.1'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
#从appium库里导入driver对象
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capabilities=desired_caps)
time.sleep(1)
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("123")
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("张三")
time.sleep(2)
driver.find_element_by_xpath("//*[@resource-id ='android:id/search_src_text']").clear()
#关闭APP
driver.close_app()
time.sleep(1)
#释放资源
driver.quit()