zoukankan      html  css  js  c++  java
  • Appium

    一、Appium介绍

    https://testerhome.com/topics/11318

    整个UI自动化实现:定位元素》利用appium提供的API进行流程操作》利用unittest进行断言》利用TestHTMLReport生成测试报告

    二、Appium遇到的坑

    全的元素定位不到 

    解决办法:封装swipe方法,滑动屏幕直到找到某元素

    def SwipeUntilElementAppear(self,i,ele):
    # 获取屏幕宽高:
    width = self.driver.get_window_size()['width']
    height = self.driver.get_window_size()['height']
    j=0
    while j < i:
    try:
    self.driver.find_element_by_xpath(ele).click()
    break
    except Exception as e:
    self.driver.swipe(width / 2, height * 0.5, width / 2, height * 0.1) # 滑动屏幕
    time.sleep(2)
    j = j+1

    6.:className不允许使用复合类名做参数

    解决办法:

    真实环境中元素往往使用复合类名(即多个class用空格分隔),使用className定位时要注意了,className的参数只能是一个class。
      例如,打开http://hao.360.cn/,我们要使用className定位这个元素
    <a class="tab-item news" data-page="http://sh.qihoo.com/daohang/index1.html"; hidefocus="false"href="./brother.html#!news">新闻头条</a>
      1)执行driver.findElements(by.className("news")),成功定位到元素
      2)执行driver.findElements(by.className("tab-item news")),定位失败,报错信息:Compound class names not permitted,意思是不允许使用复合类名称

    7.:以下html用classname定位不到

    解决方法:用xpath定位

    8.:用class定位多个元素时,提示权限问题

    解决办法:改用css定位可解决

    9.:接入HtmlTestRunner,直接点右键运行结束后没有报异常,但就是没有生成测试报告

    解决办法:因为点右键运行或点右上角的运行按钮或ctrl+shift+F10都运行的是编译器自带的unittest in xxx.py,所以需要按Alt+shift+F10,选择xxx来运行,这样就是从自己的main入口开始执行

    10.:appium server和uiautomatorview不能同时打开

    11.:导入信用卡很慢

    解决办法:暂无

    12.:定位不准,导信用卡  self.driver.find_element_by_xpath("//android.widget.EditText[@text='用户名']").send_keys("wallisqq") 有时定位到密码框

    解决办法:暂无

    13.:定位输入框,输入文本有时弹键盘,导致定位不到登录

    解决办法:暂无

    三、报告展示

    四、思考

    1.框架的结构做成哪样的比较好?

  • 相关阅读:
    IE6下不能定义1px高度的容器和IE6 双边距
    py django 渲染前端打包的视图
    关于常见的递推关系。
    题解:一些递推的题。
    题解:极值问题。
    题解:城南树林。
    题解:论编辑器的和谐共处。
    题解:左右横跳。
    题解:斑马,斑马(zebra)
    找 前端 私活
  • 原文地址:https://www.cnblogs.com/lynnetest/p/9888599.html
Copyright © 2011-2022 走看看