Appium自动化一

1.session:
Appium的客户端和服务端之间进行通信都必须在一个Session的上下文中进行。客户端在发起通信的时候首先会发送一个叫作“Desired Capabilities”(要求的配置)的JSON对象给服务器。服务器收到该数据后,会创建一个session并将session的ID返回到客户端。之后客户端可以用该session的ID发送后续的命令。
2.熟悉Adb的一些命令现有项目的底层手机上的应用
3.定位方法:
通过id定位
两种方法都可以:
box=driver.find_element_by_id(“com.xsteach.appedu:id/rl_home_top_search”)
box=driver.find_element_by_id(“editText”)

通过class_name定位
(取class的内容)
方法1:
driver.find_element_by_class_name(“android.widget.TextView”)
方法2:
driver.find_elements_by_android_uiautomator(‘new UiSelector().className(“and
roid.widget.TextView”)’)[2].click()

通过xpath定位
(取xpath的内容)
driver.find_element_by_xpath("//android.widget.RadioButton[@text=‘个人中心’]")

通过text定位
(需要使用uiautomator的定位方式,使用text的内容)
driver.find_elements_by_android_uiautomator(“new UiSelector().text(“个人中心”)”)

使用这里需要注意一下,通过text定位的结果是个list,不能直接click。所以如果要点击需要取数组的值,比如下面是点击找到的第一个元素
driver.find_elements_by_android_uiautomator(“new UiSelector().text(“个人中心”)”)[0].click()

部分文字匹配:
driver.find_element_by_android_uiautomator(‘new UiSelector().textContains(“中心”)’).click()

正则匹配:
driver.find_element_by_android_uiautomator(‘new UiSelector().textMatches(".*
的课程.*")’).click()

通过css_selector定位(webview)
只适用于webview的html页面,继承自webdriver,与pc版本的UI测试一致
driver.find_element_by_css_selector()

通过link_text定位(webview)
只适用于webview容器中的html页面,继承自webdriver,与pc版本的UI测试一致
driver.find_element_by_link_text()

通过name定位
web view容器中的html页面可以用name定位,native并没有name属性
driver.find_element_by_name()

find_element(by,value)
find_element_by_方式(value)实际调用的都是find_element(by,value)
需要导入这个包:from selenium.webdriver.common.by import By

例如:定位id为ag2的元素
方式一:
driver.find_element_by_id("ag2”)
driver.find_element_by_id("content_rb_bbs”)
方式二:
driver.find_element(By.ID,“ag2”)
driver.find_element(By.ID,“content_rb_bbs”)

这个操作的好处是可以直接把操作的by和value放到一个元组里,然后调用通用方法来传参获得元素结果
cateid=(By.ID,“ag2”)
driver.find_element(*cateid).click()

By 操作的三种写法复习:
by.id by_id 3. (by = " " ,value= “”)

find_elements_by_定位方式(value)返回元素数组
用法与find_element_by_方式(value)一致,但是返回一个数组。可以通过数组的索引来访问具体的某个结果

例如:通过class_name定位到多个元素,我想点击第一个元素
driver.find_elements_by_class_name(“android.widget.TextView”)[0].click()

返回元素数组的另一种写法:find_elements(by,value)
用法与find_element(by,value)一致,但是返回一个数组。可以通过数组的索引来访问具体的某个结果

例如:通过class_name定位到多个元素,我想点击第一个元素
driver.find_elements(By.CLASS_NAME,“android.widget.TextView”)[0].click()

通过元素定位元素
可以先找到某个元素,然后再进一步定位元素
find_element_by_class_xpath(“xxx”).find_element_by_name(“yyy")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值