Webelement.click()在appium中给出java.lang.NullPointerException [英] Webelement.click() giving java.lang.NullPointerException in appium

查看:160
本文介绍了Webelement.click()在appium中给出java.lang.NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每次尝试在代码行element.click()下运行以下代码时,我都会得到NullPointerException

I am getting NullPointerException everytime I try to run below code at code line element.click()

注意:如果我注释了最后一行代码,则通过. 在此处也提出了类似的问题,但这没有帮助.

Note : It passes if I comment the last line of code. Also similar question was asked here but it didn't help.

AndroidDriver driver;
@Test
public void TestAppium() throws Exception{

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName", "MotoG5s Plus");
    capabilities.setCapability("platformVersion", "7.1.1");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("noReset", "true");

    File file = new File("D:\\Appium Workspace\\AppiumDemo\\apk\\MakeMyTrip Flights Hotels Cabs IRCTC Rail Bookings_v7.3.2_apkpure.com.apk");

    capabilities.setCapability("app", file.getAbsolutePath());

    driver = new AndroidDriver(new URL("http://10.80.196.55:4723/wd/hub"), capabilities);
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    Thread.sleep(10000);
    WebElement element = driver.findElementById("com.makemytrip:id/my_profile_icon");
    element.click();

}

此外,如下面的屏幕截图所示,我的驱动程序onject也不为空

Also my driver onject is not null as you can see from below screenshot

该元素也不为null,如下面的屏幕截图所示:-

Also the element is not null as you can see in screenshot below :-

我什至放了thread.sleep()以防万一是由于加载. 在findelementbyid()方法中提供的ID是正确的.并启动应用程序,然后

I have even put the thread.sleep() in case it is because of loading. The ID given in findelementbyid() method is correct. And also it launches the app and then it

它启动应用程序,然后抛出以下错误消息:-

It Launches the app and then it throws below error message :-

java.lang.NullPointerException
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:279)
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:83)
at Appiumcapabilities.TestAppium(Appiumcapabilities.java:34)
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.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:580)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:716)

我正在使用selenium-java-3.9.1和appium服务器1.7.1,testNG Windows 10,appium-java-client版本4.1.0

I am using selenium-java-3.9.1 and appium server 1.7.1, testNG Windows 10, appium-java-client version 4.1.0

推荐答案

请勿将硒依赖项明确设置

Do not set selenium dependency explicitly as appium-java-client dependency already has it in-built: you are running into library incompatibility issue.

如果需要更改Selenium的版本,则可以按以下方式配置pom.xml:

If it is necessary to change the version of Selenium then you can configure pom.xml like following:

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>${version.you.require}</version>
  <scope>test</test>
  <exclusions>
    <exclusion>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
    </exclusion>
  </exclusions>
</dependency>

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>${selenium.version.you.require}</version>
</dependency>

可以使用 Gradle 完成相同的事情:

Same thing can be done with Gradle:

repositories {
    jcenter()
    maven {
        url "http://repo.maven.apache.org/maven2"
    }
}

dependencies {
   ...
   testCompile group: 'io.appium', name: 'java-client', version: requiredVersion {
       exclude module: 'selenium-java'
   }
   
   testCompile group: 'org.seleniumhq.selenium', name: 'selenium-java', 
   version: requiredSeleniumVersion
   ...
}   

这篇关于Webelement.click()在appium中给出java.lang.NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆