简体   繁体   English

异常:java.lang.NullPointerException

[英]Exception: java.lang.NullPointerException

I am using the following code to verify whether the image has loaded completely on a webpage or not. 我正在使用以下代码来验证图像是否已完全加载到网页上。

public static boolean IsImageVisible1(WebDriver driver, By locator)
  {
    WebElement image = driver.findElement(locator);
    //if the element not present you'll get the NoSuchElementException exception
    JavascriptExecutor js = (JavascriptExecutor) driver;
    boolean imageLoaded1  = (boolean) js.executeScript("return arguments[0].complete && (typeof arguments[0].naturalWidth !== \"undefined\") && (arguments[0].naturalWidth > 0)", image);      
    return imageLoaded1;
  }

while running this method i am getting following exception 在运行此方法时,我得到以下异常

java.lang.NullPointerException
at pack2.image.IsImageVisible1(image.java:58)
at pack2.image.test(image.java:23)
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:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)


function call to above method: IsImageVisible1(driver, By.id("homepage-preview"));

let me know what i am missing in the above javascript code. 让我知道上面的JavaScript代码中缺少的内容。

Thanks in advance 提前致谢

  1. typeof should be one word. typeof应该是一个字。 And that should fix it. 那应该解决它。
  2. You can just return imageLoaded1 after that. 之后,您可以只返回imageLoaded1 No need to put the if condition. 无需放置if条件。

UPDATE: 更新:

You are probably getting the NullPointer Exception because executeScript returns null. 您可能会收到NullPointer异常,因为executeScript返回null。 I've modified the code a bit (mainly I put the brackets to make sure the correct order of logical operators) 我对代码做了一些修改(主要是放在方括号中,以确保逻辑运算符的正确顺序)

try this: 尝试这个:

public static boolean IsImageVisible1(WebDriver driver, By locator)
  {
    WebElement image = driver.findElement(locator);
    //if the element not present you'll get the NoSuchElementException exception
    JavascriptExecutor js = (JavascriptExecutor) driver;
    boolean imageLoaded1  = (boolean) js.executeScript("return arguments[0].complete && (typeof arguments[0].naturalWidth !== \"undefined\") && (arguments[0].naturalWidth > 0)", image);      
    return imageLoaded1;
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NullPointerException servlet - java.lang.NullPointerException servlet netbeans中的JavaScript错误“ java.lang.NullPointerException” - javascript error“java.lang.NullPointerException” in netbeans 为什么servlet jsp的Servlet.service()抛出异常java.lang.NullPointerException? - Why Servlet.service() for servlet jsp threw exception java.lang.NullPointerException? PayPal-Javascript-REST-错误:java.lang.NullPointerException - PayPal - Javascript - REST - Error: java.lang.NullPointerException Liferay 7:使用javascript api jsonws检索自定义字段值,返回java.lang.NullPointerException - Liferay 7: Retrieved custom field value using javascript api jsonws return java.lang.NullPointerException 在JavaScript中创建输入隐藏类型Element数组,并在Servlet中获取值,但java.lang.NullPointerException - Create input hidden type Element array in JavaScript and get values in Servlet but java.lang.NullPointerException 尝试获取表行计数值,但转换结果java.lang.NullPointerException时出错:lock == null - trying to get table row count value but got Error converting result java.lang.NullPointerException: lock == null 从Nashron JavaScript运行Java-异常java.lang.ClassNotFoundException - Running Java from Nashron JavaScript - Exception java.lang.ClassNotFoundException “主”线程中的JavaScript到Java异常java.lang.NumberFormatException:对于输入字符串:“” - JavaScript To Java Exception in thread “main” java.lang.NumberFormatException: For input string: “” org.springframework.web.util.NestedServletException:处理程序调度失败; 嵌套异常是 java.lang.StackOverflowError - org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.StackOverflowError
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM