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 Android.

        :Args:
         - uia_string - The element name in the Android UIAutomator library

        :Usage:
            driver.find_element_by_android_uiautomator(‘.elements()[1].cells()[2]‘)
        """
        return self.find_element(by=By.ANDROID_UIAUTOMATOR, value=uia_string)

 看了一会,愣是没有明白给出的示例是什么意思,实际脚本中怎么运用,我知道是自己太笨了,所以果断还是找能看懂的示例进行学习吧,因此哈哈还真找到了,将此运用方式写成简单的示例来记录,说明:这里已text为例,其余的uiautomator中的方法使用形式与此一致,因此会一个足以按照此方式来实现其他需求。

示例如下:

# coding=UTF-8
‘‘‘
Created on 2017.12.21
@author: Lucky
‘‘‘from appium import webdriver

class Customer:

    def __init__(self):
        logging.info("Test_appium.....setUp")
        desired_cups = {}
        desired_cups[‘platformName‘] = ‘Android‘
        desired_cups[‘platformVersion‘] = ‘7.0‘
        desired_cups[‘deviceName‘] = ‘aa‘
        desired_cups[‘appPackage‘]= ‘com.ibroker.iBerHK‘
        desired_cups[‘appActivity‘] = ‘.SplashActivity‘
        self.device = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub‘,desired_cups)
        self.device.implicitly_wait(20)    #全局默认等待最大时间

    #第一种 直接点击字符串  def Enter_Customer_List(self):
        ‘‘‘select:通訊錄導入 and 手動添加‘‘‘
        self.device.find_element_by_android_uiautomator(‘text(\"列表\")‘).click()     #点击 字符串“列表”

  #第二种 通过参数的给定来操作  def Enter_Customer_List2(self,name):
        ‘‘‘select:通訊錄導入 and 手動添加‘‘‘
        self.device.find_element_by_android_uiautomator(‘text(\"‘+name+‘\")‘).click()    
if __name__ == "__main__":  c = Customer()  c.Enter_Customer_List()  c.Enter_Customer_List(‘列表‘)
   
时间: 2024-11-05 11:24:04

appium 元素定位find_element_by_android_uiautomator方法使用的相关文章

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元素定位之AndroidUiAutomator

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

Appium——元素定位

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

Selenium(一)元素定位的方法

在Selenium中定位元素有七种方法: 1. identifier定位 这是最普遍的一种定位方式,在Selenium中默认为identifier定位,在这种策略下,第一个使用id的页面元素将被识别出来,如果没有使用指定id的元素,那么将识别第一个名字与指定条件相符的元素.例如:identifier=Continue  //定位页面元素为Continue因为identifier定位是默认方式,因此"identifier=" 可以不写. 2. id定位(最常用) 这种定位方式比ident

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 元素定位

查找控件的方式: 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

学习 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等 例子