• python_元素定位


    一。appuim 元素定位辅助工具

    1)启动

    点击搜索按钮,等待

    等待完毕:

    启动会话:

    页面页面介绍:

     2)元素定位:

     -搜索

     搜索结果:

     

    补充:

    1.selenium中

    webdriver.Chrome()运行原理:

    -先启动一个服务端,再启动一个客户端 使用客户端给服务端发送请求

       -start

      -运行Chromedriver服务

      

     -ChromeRemoteConnection 远程连接:

      -向远程服务器发送命令。

      

     2.appium

    -服务端是appuim

    -客户端也是初始化一个

      -

    -selenium与appium公用一个类:WebDriver

      -selenium,只是使用了 Chrome()子类

      

       -appium则使用了 Remote() 子类

      

    3.MobileBy:继承了selenium中的By,自动有封装了一部分方法 与selenium相比定位方式少了些:比如 :css定位

    二。元素定位

    1.与selenium相比appium

    -app 当中属性名是固定的,所有的元素都具备这些属性,

      -id, class, content-desc, clickable, checkable, 都在辅助工具会显示的。

    -id 可以不唯一, web 当中 id 是唯一

    -app中class 是表示组件的名称,类似于 web 当中 tagname

      -app 自动化测试当中,很少用单独的 class 定位

    2.app中常用元素定位方式

    - id, 确认什么时候唯一, inpect 查找元素。

    - content-desc 元素标识, 经常没有。

    - uiautomator 原生定位方式

    - xpath (相对路径,一般用。手机解析页面素速度比较慢)

    3.元素定位:

    from appium import webdriver

    caps={
    "platformName": "Android",#平台名称
    "deviceName": "emulator-5554",#设备名字
    "appPackage":"包名",
    "appActivity":"页面",
    }

    driver = webdriver.Remote(
    command_executor='http://127.0.0.1:4723/wd/hub',
    desired_capabilities=caps,
    )
    -方式一:
    # 通过 ID
    # el = driver.find_element("id", "值")
    # el.click()
    -方式二:
    # 通过 content-desc 属性查找
    # el = driver.find_element_by_accessibility_id("值")

    -方式三:uiautomator
      -单个元素操作
        # 值,value: Java 代码

        # TODO: Java 代码表示字符串是用双引号,单引号不行,

        # TODO:若有多个引号,可以在里面的引号之前打
        

           selector = 'new UiSelector().resourceId("id值")'
        el = driver.find_element_by_android_uiautomator(selector)

        #另外一种调用方法
        # # el = driver.find_element(MobileBy.ANDROID_UIAUTOMATOR, "")
        el.click()

     

      -组合元素操作
        参考地址:https://www.cnblogs.com/jianXu/p/5158396.html
          

          # 和xpath 一样,可以进行条件的组合。
          # 组合查询比 xpath 更快
          # new UiSelector().resourceId("组合值1").text("组合值2") #等等通过链式调用生效
          # new UiSelector().resourceId())

      -父子元素
        

        # 父元素, (子元素) ==》 通过子元素的特征找到父元素
        # new UiSelector().checkable(false).childSelector(
        # new UiSelector().checkable()
        # )





    -方式四:xpath
    # el = driver.find_element(MobileBy.XPATH, "")

    time.sleep(2)
    driver.quit()

    4.元素定位其他辅助工具

    uiautomatorviewer: android 调试工具 手动刷新
    weditor #网易的工具 优点:xpath 是相对路径;鼠标可显示

    三。等待

    元素等待
    强制
    隐式等待
    显示等待

  • 相关阅读:
    sql server 表变量和临时表
    c# 操作excel 总结
    ifttt.com:让你的网络行为能引发连锁反应
    jQuery.tmpl.js
    [置顶]IFTTT与Google+是什么?ifttt怎么玩?
    使用 TRY/CATCH 语句解决 SQL Server 2005 死锁
    TFS2010 取消锁定
    Android 开发简介
    Cocos2d开发系列(七)
    针对中小型网站(3000人左右/15分钟)的服务器架构
  • 原文地址:https://www.cnblogs.com/newsss/p/13472423.html
Copyright © 2020-2023  润新知