zoukankan      html  css  js  c++  java
  • Resource_id和文本都相同的多个TextView定位问题

    Robotium写自动化的过程中,会遇到这样的情况,在一个屏幕显示页中,有多个TextViewresource_id是相同的,而且显示的Text也是变化的(如下图的“顶”),这种情况就没有办法用clickontext()函数来对其进行操作,而且还要验证操作后的结果,这时必须对TextView进行定位。

    Resource_id和文本都相同的多个TextView定位问题

      我在网上查找了很多网站,并经过尝试,发现用getview方法可行,先定位到TextView,然后再用index标识是哪儿个TextView。例如:

    //顶操作

           //1,获取现有的顶数

           view2=(TextView)solo.getView(TextView.class,10);

           content=view2.getText().toString();

           num=Integer.parseInt(content.substring(1, content.length()));

           //2,顶操作,然后判断数量是否加1

           view1=solo.getView(TextView.class,10);   

           solo.clickOnView(view1);

           solo.sleep(3000);

           view2=(TextView)solo.getView(TextView.class,10);

        assertEquals(""+(num+1),view2.getText());

    代码详解:

      我们要验证顶操作,首先要获取操作前现在的顶数量,然后再进行顶操作,最后要验证顶数是否加1~

    获取TextView的方法是:view1=solo.getView(TextView.class,10);

    第一个“顶”是第10TextView,这个需要通过定位和尝试才能得知是第几个!

    此方法的优缺点:

    优点:可以通过index定位View中的所有TextView,而且不受resouce_idTextView上面显示内容的影响。

    缺点:此方法相当于相对定位,如果页面有变化,在要定位的元素前增加或是减少了TextView,当定位就失败了!

    ----夫英雄者,胸怀大志,腹有良谋,有包藏宇宙之机,吞吐天地之志者也。
  • 相关阅读:
    leetcode16 3-Sum
    leetcode679:24Game
    leetcode621 贪心:任务安排
    SpringMVC中的Controller默认单例
    O(n)复杂度求没有出现的数字(leetcode448)
    SpringBoot获取ApplicationContext
    Largest Number(leetcode 179)
    使用免费ip代理进行投票
    Oracle分页
    Oracle JDBC配置
  • 原文地址:https://www.cnblogs.com/eagleking0318/p/6520945.html
Copyright © 2011-2022 走看看