driver.findElement(By.name("userName")).sendKeys("username")
driver.findElement(By.name("userName")).sendKeys("username")给sendKeys("username");传参数username="lulu"但是总是执行不过去呀,报空指针,By.name("userName"),但是当我不传参数的时候是可以找到的呀,这个怎么回事呢,难道这个方法不可以传参数吗??求大神指导 是不是考虑赋值是不是成功 driver.findElement(By.name("userName")).sendKeys("username")变量不用引号的吧? jingzizx 发表于 2016-10-13 14:52
是不是考虑赋值是不是成功
成功了上一行加的System.out.println(username+","+realname+","+password+","+tel); 已经输出来了 若尘_51 发表于 2016-10-13 15:06
driver.findElement(By.name("userName")).sendKeys("username")变量不用引号的吧?
是的没有引号,我写错了。但是还是不对 Jay~ 发表于 2016-10-13 16:26
是的没有引号,我写错了。但是还是不对
附上完整一点的脚本看看~~ 打断点debug跟一下,应该获取到空值,所有报空指针异常 本帖最后由 Jay~ 于 2016-10-14 09:13 编辑
若尘_51 发表于 2016-10-13 16:36
附上完整一点的脚本看看~~
try {
for(int i=0;i<row;i++) {
String[] str = (String[]) list.get(i);
String username = str;
String realname = str;
String password = str;
String tel = str;
Newcustomer cus = new Newcustomer();
cus.newcust(username,realname,password,tel);
}
} catch (Exception e) {
e.printStackTrace();
}
if(stream != null){
stream.close();
}
public void newcust(String username,String realname,String password,String tel) throws Exception {
System.out.println( driver.findElement(By.name("realName")));这里就报空指针了 这是48行
driver.findElement(By.name("realName")).clear();
driver.findElement(By.name("realName")).sendKeys(realname);
// driver.findElement(By.xpath(".//*[@id='customerForm']/div/div/div/div/div/div/div/input")).clear();
// driver.findElement(By.xpath(".//*[@id='customerForm']/div/div/div/div/div/div/div/input")).sendKeys(realname);
driver.findElement(By.name("userName")).clear();
driver.findElement(By.name("userName")).sendKeys(username);
driver.findElement(By.name("password")).clear();
driver.findElement(By.name("password")).sendKeys(password);
driver.findElement(By.name("mobile")).clear();
driver.findElement(By.name("mobile")).sendKeys(tel);
driver.findElement(By.id("customerFormBtn")).click();
}
下面是报的错
java.lang.NullPointerException
at com.abczww.hs.demo.Newcustomer.newcust(Newcustomer.java:48)
at com.abczww.hs.demo.ExcelWorkBook.readExcel(ExcelWorkBook.java:80)
at com.abczww.hs.demo.Newcustomer.test1(Newcustomer.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
System.out.println( driver.findElement(By.name("realName"))); 改成
String realname = realName;
System.out.println( driver.findElement(By.name(relaname))); 先把引号取消。 alchaochao 发表于 2016-10-15 21:41
System.out.println( driver.findElement(By.name("realName"))); 改成
String realname = realName;...
你这个写法是什么意思。。。。。
realName 是web端的 name=realName如果改成你这样肯定报错 完全找不到 Jay~ 发表于 2016-10-17 16:15
你这个写法是什么意思。。。。。
realName 是web端的 name=realName如果改成你这样肯定报错 完全找 ...
你的代码直接把形参当username当做字符串传进去了,肯定找不到,先定义一个变量接收传进去的参数,然后再By.name
页:
[1]