Got an error that attribute value is missing

Hello
I have base class that have an Url url without instantiation, than I have and class that inherit it and in the before method of it (TestNG) I have statement : url = new URL(props.getProperty(“appiumURL”));
the URL is 127.0.0.0
afterwards I have :

desiredCapabilities.setCapability(“automationName”, props.getProperty(“iOSAutomationName”));
String iOSAppUrl = getClass().getResource(props.getProperty(“iOSAppLocation”)).getFile();
utils.log().info(“appUrl is” + iOSAppUrl);
desiredCapabilities.setCapability(“bundleId”, props.getProperty(“iOSBundleId”));
desiredCapabilities.setCapability(“wdaLocalPort”, wdaLocalPort);
desiredCapabilities.setCapability(“webkitDebugProxyPort”, webkitDebugProxyPort);
//desiredCapabilities.setCapability(“app”, iOSAppUrl);
driver = new IOSDriver(url, desiredCapabilities);

the value of the url is : http://0.0.0.0:4723/wd/hub
than after the line of the “driver = new IOSDriver(url, desiredCapabilities);” I get an exception that the url is null,
than BuildInfo class is opened :

 package org.openqa.selenium;

  import java.io.File;
  import java.io.IOException;
  import java.io.InputStream;
  import java.net.URISyntaxException;
  import java.net.URL;
  import java.util.Map.Entry;
  import java.util.Properties;
  import java.util.Set;
  import java.util.jar.Attributes;
  import java.util.jar.JarFile;
  import java.util.jar.Manifest;
  import java.util.zip.ZipEntry;

 /**
 * Reads information about how the current application was built from the Build-Info section of the
 * manifest in the jar file, which contains this class.
 */
 public class BuildInfo {

 private static final Properties BUILD_PROPERTIES = loadBuildProperties();

private static Properties loadBuildProperties() {
Properties properties = new Properties();

Manifest manifest = null;
JarFile jar = null;
try {
  URL url = BuildInfo.class.getProtectionDomain().getCodeSource().getLocation();
  File file = new File(url.toURI());
  jar = new JarFile(file);
  ZipEntry entry = jar.getEntry("META-INF/build-stamp.properties");
  if (entry != null) {
    try (InputStream stream = jar.getInputStream(entry)) {
      properties.load(stream);
    }
  }

  manifest = jar.getManifest();
} catch (
    IllegalArgumentException |
    IOException |
    NullPointerException |
    URISyntaxException ignored) {
} finally {
  if (jar != null) {
    try {
      jar.close();
    } catch (IOException e) {
      // ignore
    }
  }
}

if (manifest == null) {
  return properties;
}

try {
  Attributes attributes = manifest.getAttributes("Build-Info");
  Set<Entry<Object, Object>> entries = attributes.entrySet();
  for (Entry<Object, Object> e : entries) {
    properties.put(String.valueOf(e.getKey()), String.valueOf(e.getValue()));
  }

  attributes = manifest.getAttributes("Selenium");
  entries = attributes.entrySet();
  for (Entry<Object, Object> e : entries) {
    properties.put(String.valueOf(e.getKey()), String.valueOf(e.getValue()));
      }
    } catch (NullPointerException e) {
       // Fall through
    }

    return properties;
  }

    /** @return The embedded release label or "unknown". */
    public String getReleaseLabel() {
    return BUILD_PROPERTIES.getProperty("Selenium-Version", "unknown").trim();
  }

  /** @return The embedded build revision or "unknown". */
   public String getBuildRevision() {
    return BUILD_PROPERTIES.getProperty("Build-Revision", "unknown");
  }

  /** @return The embedded build time or "unknown". */
   public String getBuildTime() {
    return BUILD_PROPERTIES.getProperty("Build-Time", "unknown");
  }

  @Override
  public String toString() {
   return String.format("Build info: version: '%s', revision: '%s', time: '%s'",
    getReleaseLabel(), getBuildRevision(), getBuildTime());
 }

}

the thing is that :

  attributes = manifest.getAttributes("Selenium");
  entries = attributes.entrySet();

the attribute is null .

what I’m doing wrong?
Thank you

Can you check if manifest object has attribute “Selenium” & it is getting loaded at the time of execution? Null error is coming reason Selenium attribute is not found.

@Abhay_Bharti bhay_Bharti


You see something? I don’t see the selenium at all

If a value does not exist, you can’t read.

and how to add the value? or where?