如何从 HashMap 中检索 id

How to retrieve an id from the HashMap

我有下面的脚本,我可以在其中正确获取 ID,但是当我将它附加到 url 时,我得到的是

java 空指针异常。

下面是我用来存储ids的方法:

public static HashMap<String, String> createdValue; 
    
public static void getid(WebDriver driver) throws InterruptedException      
{
    String pendingconfirm = buttonXpath_Replace.replace("XXXX", "Pending confirm"); 
    clickOnButton(driver, pendingconfirm);          
    createdValue = new HashMap<String, String>();
    List<WebElement> tableValues = driver.findElements(By.xpath("//table//tr//td[contains(@class,'mat-column-demandId')]//span"));
    int tableValueSize = tableValues.size();
    System.out.println("Get the no of rows:"+tableValueSize);
    WebElement latestId = driver.findElement(By.xpath("(//table//tr//td[contains(@class,'mat-column-demandId')]//span)["+tableValueSize +"]"));
    System.out.println("Latest DemandIds: "+ latestId .getText());
    WebDriverWait wait = new WebDriverWait(driver,30);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("(//table//tr//td[contains(@class,'mat-column-demandId')]//span)["+tableValueSize +"]")));
    createdValue.put("latestDataId", latestId.getText()); 
    System.out.println(createdValue.put("latestDataId", latestId.getText()));     
} 

然后我调用上面的方法将 latestId 附加到 url:

String confirmationURL = "https://test-webapp.net/#/type=confirm";
List<String> newurls = new ArrayList<String>();
newurls.add(confirmationURL + "&id=" + createdValue.get("latestDataId")); 

所以在这种情况下,我通过按上面的附加方式从以前的方法中获取 id,但是当我这样做时,它没有获取 id 并导致空指针异常。

关于我可以做些什么来解决这个问题的任何意见。

基本上 createdValuegetid 都是静态的,所以当你这样调用它时:

newurls.add(confirmationURL + "&id=" + createdValue.get("latestDataId")); 

正在调用:

public static HashMap<String, String> createdValue; 

因为它什么都没有,所以你得到了空指针异常。

另外,我想如果你这样称呼:

getid 先这样调用 :

String confirmationURL = "https://test-webapp.net/#/type=confirm";
List<String> newurls = new ArrayList<String>();
getid(driver);
newurls.add(confirmationURL + "&id=" + createdValue.get("latestDataId")); 

应该可以帮助您解决这个问题。