zoukankan      html  css  js  c++  java
  • [Appium] 使用Appium过程中遇到的各种坑

    以下问题都是以ios为背景:

    1.

    问题:

    Case: 在页面S1上,点击元素A后,判读B元素是否出现。

    Detail:一开始通过Appium Inspector, 可以找到B元素,所以直接取该元素的name, 在代码中写入findElement(By.name("NameOfB"));

    但是case始终运行失败, 之后打开Appium Inspector, 通过name查找该元素, 发现inspector定位到了另一个非此名的元素上。即使重新刷新页面去获取新的dom, 也不起作用。

    解决方案:

    这种情况非常诡异, 目前不知道是不是Appium的bug。可换一种定位方式,如使用findElement(By.UIAutomation("XXX"))。

    2. 

    问题:

    与web和android相比,在ios上使用appium做自动化速度非常的慢。 

    解决方案:

    • 不要使用xpath定位方式。
    • 尽量少用findElement, 如果该值需要在之后继续使用,可以把它赋值给一个变量。 也就是说尽可能减少与Appium server的交互。

    3. 

    问题:

    因为元素必须先出现在页面上,才可以使用click/tap方法。所以这里先使用isDisplay()方法判读该元素出现, 然后点击该元素。但是测试下来,仍有可能即使isDisplay()返回的结果为true, 该元素还会因为不可见而点击报错。

    解决方案:

    虽然该元素的isDisplay()返回了true,但是该元素的中心点可能仍然不在屏幕上。 tap方法其实点击的就是元素的中心点。可以使用swipe方法再滑动一下屏幕让这个元素完全显示在屏幕上。

  • 相关阅读:
    C++---使用类
    C++---函数
    C++---指针和引用
    C++---面向对象
    C++---数组
    C++---条件结构和循环结构
    C++---变量、数据类型和运算符
    C++---初识C++
    MySQL---什么是事务
    MySQL---char和varchar的区别
  • 原文地址:https://www.cnblogs.com/mytianying/p/5547246.html
Copyright © 2011-2022 走看看