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自动化测试框架综合实践 - 代码实现(超详解)