appium 元素定位

查找控件的方式:
  1.通过id查找
  self.driver.find_element_by_id("com.guokr.mentor:id/text_view_topic_title")
  self.driver.find_elements_by_id("")[0]

  2.通过name查找
  self.driver.find_element_by_name("推荐")

  3.通过class_name查找
  self.driver.find_elements_by_class_name("android.widget.TextView")

  4.通过xpath查找
  self.driver.find_element_by_xpath("")

  5.通过uiautomator的方式查找
   self.driver.find_element_by_android_uiautomator()

  6.通过uiautomation的方式查找
  self.driver.find_element_by_ios_uiautomation()

对控件操作 以下以element代表控件:
  获取手机屏幕分辨率
  width=self.driver.get_window_size()[‘width‘]    获取宽
  height=self.driver.get_window_size()[‘height‘]   获取高

  1.点击
  element.click()

  2.点击坐标 手机左上角 (0,0)
  mobile: 和tap之间需要有一个空格!  

  self.driver.execute_script("mobile: tap",{"x":0.5*width,"y":0.5*height})

  3.tap点击
  TouchAction(self.driver).tap(element).perform()

  4.滑动flick
  向上滑动为负数,向下滑动为正数 按住一点进行滑动
  向左是负数,向右是整数
  TouchActions(self.driver).flick(-10,-30).perform()

  5.对元素进行滑动 向左是负数,向右是整数 最后一个参数是多长时间
  TouchActions(self.driver).flick_element(element,-100,-100,5).perfor  

  6.swipe滑动 直接滑动

  startX,startY是滑动的起始坐标;endX和endY是滑动的结束坐标;touchCount (默认 为1): 触摸数量,即手指的个数;duration是滑动的持续时间,单位s。
  self.driver.execute_script("mobile: swipe",{‘startX‘:100,‘startY‘:100,‘endX‘:100,‘endY‘:200,‘tapCount‘:1,‘duration‘:2})

  7.长按long_press
  TouchActions(self.driver).long_press(element).perform()
  8.按着某个点拖到另一个点 按住点
  TouchAction(self.driver).press(x=10,y=11).move_to(x=100,y=100).release().perform()

  9.获取值属性 text
  e1=element.text

  10.输入框输入文字
  desired_caps[‘unicodeKeyboard‘]=‘true‘
  desired_caps[‘resetKeyboard‘]=‘true‘
  首先点击控件 获取到焦点再输入
  element.click()
  element.send_keys(u‘宝马‘)

  11.使用os命令 os命令相当于调用cmd命令
  os.system("adb shell input text 宝马")

  12.安卓keycode
  self.driver.press_keycode(4)

断言方式 使用unittest 自带有assert的断言方式:
  1.校验值是否一致 assertEqual 预期值 实际值
  self.assertEqual(element.text,"搜你想搜")
  assert cmp("1","2")==0

  2.校验值不一致
  self.assertNotEqual("1","2")

  3.包含关系
  self.assertIn("你好","你好呀")

  4.不包含
  self.assertNotIn("你","他们")

原文地址:https://www.cnblogs.com/pengranxindong/p/9957113.html

时间: 2024-11-05 11:54:00

appium 元素定位的相关文章

4、通过uiautomatorviewer实现appium元素定位

熟悉selenium自动化的小伙伴应该知道WebDriver 提供了八种元素定位方法: idnameclass nametag namelink textpartial link textxpathcss selector appium元素定位和WebDriver略微有些差异,具体差异在哪里,下面会具体介绍,在此之前,我们先打开uiautomatorviewer.bat(在sdk/tools路径下) appium元素定位一:通过 Id 定位 如上图所示resource-id 就是我们要找的 Id

appium元素定位

通过id定位 安卓里面的id即为resource-id driver.findElementById("com.tencent.mm:id/do") 或者 WebElement element = driver.findElement(By.id("com.tencent.mm:id/do")); 通过name定位 一般text为name WebElement el = driver.findElement(By.name("昵称")); 通过c

Appium——元素定位

首先介绍两种定位元素的工具,appium自带的 Inspector 和 android SDK自带的 uiautomatorviewer 1.UIAutomator Viewer比较简单,在模拟器打开app后,打开它,选择 点击这个按钮,就会同步模拟器或真机界面 点击页面中的元素,在右下角会显示该元素的一些信息 2.Inspector(android) 使用inspector就比较麻烦了,先设置appium ①首先是android setting 第一次设置的时候 package和launch

appium元素定位之AndroidUiAutomator

UIAutomator 元素定位是 Android 系统原生支持的定位方式,虽然与 xpath 类似,但比它更好用,并且支持元素全部的属性定位,定位原理是通过 android 自带的android uiautomator 的类库去查找元素 方法名:find_element_by_android_uiautomator('uiSelector 表达式') 该方法的参数为 UiSelector 类定位元素的表达式:new UiSelector().函数名称("定位表达式") 实例化一个 U

Appium元素定位难点:tap坐标定位不准确

tap用法 1.tap是模拟手指点击页面上元素语法有两个参数,第一个是positions,是list类型最多五个点,duration是持续时间,单位毫秒 tap(self, positions, duration=None): Taps on an particular place with up to five fingers, holding for a certain time 模拟手指点击(最多五个手指),可设置按住时间长度(毫秒) :Args: - positions - list类型

Appium元素定位难点:混合式的native+webview

现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了. 1.认识识webview >用uiautomatorviewer定位工具查看app页面,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红色框里面的元素是无法识别的. >这时候可以查看元素属性,如右图它的class属性,上面写着WebView,那毫无疑问这种页面就是webview了. 2..接触con

学习 APPIUM 元素定位 (JAVA)-xpath

表达式 1.xpath根据text内容查找元素 //view[contains(@text,"value")] //view[@text="value"]等 2.xpath根据content-desc查找元素 //view[contains(@content-desc,"value")] 3.xpath根据index查找元素 //view[contains(@index,value)] 4.元素顺序 //view/view[n]/view等 例子

appium 元素定位find_element_by_android_uiautomator方法使用

若appium中给定的方法无法满足你的需求,刚好uiautomator中的方法可以满足你的需求时,你可使用find_element_by_android_uiautomator来调用uiautomator中的方法来实现. appium底层文件webdriver中给出的说明如下: def find_element_by_android_uiautomator(self, uia_string): """Finds element by uiautomator in Androi

初探appium之元素定位(1)

无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多资料,帖子都是说的appium自带的Inspector这个工具进行的元素定位.而笔者不知道是电脑还是什么的问题,这个工具是无法使用的.今天给大家说的是另一个工具. uiautomatorviewer 这个工具是在我们Android的SDK的tools的文件夹里面的.使用方法也很简单.这里我以安卓模拟