appium测试代码nullpoint

Posted wujianqinjian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appium测试代码nullpoint相关的知识,希望对你有一定的参考价值。

     今天写了个简单向上滑动,执行到向上滑动操作,报nullpoint异常,经过各种乱碰终于解决了,现记录一下过程,以备以后参考!

      环境背景:java+testng+appium

      在@Test下调用 direct_slide_f("up");  这个方法的时候,最初成员变量up我是没有初始化的,只是简单声明了一下,然后在调用的的时候,没有传“up”,居然传了变量up;

      且    if(direct.equals(this.getUp())){     这句代码之前是   if(direct.equals(up)){  这样写的,所以就报了nullpoint。

      原因就是direct_slide_f 接收的应该是一个具体的字符串参数,而我传了一个没有初始化的变量 up,所以程序就不知道用什么去与   up 进行比较的,当然这个时候 up本身也没有值,

      其实就等于拿自己和自己做对比,然后就报nullpoint了!

     修改方案:将变量up初始化,然后调用方法direct_slide_f的时候,传入字符串“up”,而非变量up,执行就不报nullpoint了!

     总结:如果在新添加一段代码后,代码报nullpoint,首先检查下新添加代码中变量和方法的关系!
public class Login extends KeyClass implements BaseExecuteInterface{
    public Login(){}
    private boolean isInstall = false;
    public static androidDriver driver;
    public  final String up = "up";


    @Test
    public void login_f_tmp() throws Exception{
        String username="18576816231";
        String passwd="123456";
        driver.findElement(By.id("com.jiubei.shop:id/telephoneEt")).sendKeys(username);
        Thread.sleep(2000);
        driver.findElement(By.id("com.jiubei.shop:id/ed_pwd")).sendKeys(passwd);
        Thread.sleep(2000);
        //System.out.println("test");
        //key();
        driver.findElement(By.id("com.jiubei.shop:id/submitTv")).click();
        System.out.println("test2");
        //已进入到APP首页
        Thread.sleep(4000);
        driver.findElement(By.name("我的")).click();
        sleep(1);
      direct_slide_f("up");
    }
    // 调用出空指针,现在已修复
    public  void direct_slide_f(String direct){

        TouchAction touchAction =new TouchAction(driver);
        if(direct.equals(this.getUp())){    
            touchAction.longPress(360, 720).moveTo(360, 600).release().perform();
            System.out.println(up);
            sleep(3);
        }else if(direct.equals((this.getDown())){
            touchAction.longPress(360, 600).moveTo(360, 720).release().perform();
            sleep(3);
        }else {
            System.out.println("参数错误");
            sleep(3);
        }
    }

    唉,测试代码能力一般,总是出各种白菜错误,各位请随便喷!哈哈哈哈!






































以上是关于appium测试代码nullpoint的主要内容,如果未能解决你的问题,请参考以下文章

基于appium实现的线性代码引用unittest单元测试框架

Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)

python+appium自动化测试 —— Appium并发测试之多设备启动

移动测试之appium+python 入门代码

测试新人如何使用Python代码封装自动化测试的用例?

Appium+Pytest实现app并发测试