4、xpath定位:
xpath定位是一种路径定位方式,主要是依赖于元素绝对路径或者相对路径属性来定位,
但是绝对路径xpath执行效率较低(一般不建议使用),通常使用xpath相对路径定位。
xpath路径表达式:
/ 从根节点选取(一般不建议使用)
// 从匹配选择到的当前节点选择文档中的节点,而不考虑它们的位置
nodename 选取此节点的所有子节点
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
通配符:
* 匹配任何节点元素
@* 匹配任何属性节点
node() 匹配任何类型节点
举例:
# -*-coding:utf-8 -*-
# @Author : hudechao
# @Time : 2022/1/20 2:07
from AppiumTest import findElement
"""
等录kyb:
1、检测是否第一次登录,
2、是第一次登录,调直接登录方法,
3、不是第一次登录,点击"我"-"未登录"-调用直接登录方法
"""
driver = findElement.driver()
def login():
# 用户名输入框清除
driver.find_element_by_id("com.tal.kaoyan:id/login_email_edittext").clear()
# 用户名输入框输入账户
driver.find_element_by_id("com.tal.kaoyan:id/login_email_edittext").send_keys("zxw123")
# 密码输入框输入密码
driver.find_element_by_id("com.tal.kaoyan:id/login_password_edittext").send_keys("zxw123")
# 点击登录按钮
driver.find_element_by_id("com.tal.kaoyan:id/login_login_btn").click()
def checkCancelButton():
try:
# 如果是首次安装运行,会有升级提示
cancelButton = driver.find_element_by_id("android:id/button2")
except Exception as e:
print("cancelButton is not exist")
else:
cancelButton.click()
print("点击取消按钮")
def checkSkipButton():
try:
# 升级提示后的跳过按钮
skipButton = driver.find_element_by_id("com.tal.kaoyan:id/tv_skip")
except Exception as e:
print("skipButton is not exist")
else:
skipButton.click()
print("点击跳过按钮")
try:
# 检查是否已经登录过,如果登录过,"我"按钮元素存在
driver.find_element_by_id("com.tal.kaoyan:id/mainactivity_button_mysefl")
except Exception as e:
print("首次登录")
#首次登录才会需要检测:取消升级,点击跳过
checkCancelButton()
checkSkipButton()
login()
else:
driver.find_element_by_id("com.tal.kaoyan:id/mainactivity_button_mysefl").click()
driver.find_element_by_id("com.tal.kaoyan:id/activity_usercenter_username").click()
print("再次登录")
login()
5、list定位:
List定位首先是使用find_elements_by_XX获取一组相同的class属性的元素,然后使用数组下标来区分标记不同元素进行相关操作
举例:
images=driver.find_elements_by_id('com.tal.kaoyan:id/item_image')
images[10].click()
网友评论