如何从 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 并导致空指针异常。
关于我可以做些什么来解决这个问题的任何意见。
基本上 createdValue
和 getid
都是静态的,所以当你这样调用它时:
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"));
应该可以帮助您解决这个问题。
我有下面的脚本,我可以在其中正确获取 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 并导致空指针异常。
关于我可以做些什么来解决这个问题的任何意见。
基本上 createdValue
和 getid
都是静态的,所以当你这样调用它时:
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"));
应该可以帮助您解决这个问题。