如何将列表计数与单个整数值进行比较?

时间:2015-07-27 05:42:27

标签: java selenium-webdriver

我正在尝试匹配记录的总数,但却无法做到,因为我的一个totalcount列表类型变量很强,另一个是存储在单个整数变量中。

我的代码:

`Base.getdriver().get(Js_constants.DashboardURL);

  List<WebElement>  totaljobs = Base.getdriver().findElements(By.className(Js_constants.TopsJobsactualtotal));
  System.out.println(totaljobs.size()); //OUTPUT 30

   //Integer.parseInt(totaljobs); //THIS IS NOT WORKING..WHY?

  String Topjobscount = Base.getdriver().findElement(By.xpath(Js_constants.Topsjobscount)).getText();
  System.out.println(Topjobscount); //OUTPUT 30
  Integer.parseInt(Topjobscount); 



  //HERE IT IS NOT SUPPORTING CONDITION LIKE THIS.
  if(Topjobscount == (totaljobs.size()))

  {

      System.out.println("Jobs & Count are matching");
      Reporter.log("Jobs & Count are matching");

  }
  else
  {

      System.out.println("Jobs & Count are matching");
      Reporter.log("Jobs & Count are not matching");


  }


  }`

我正在使用 selenium webdriver&amp;爪哇即可。我想比较两个变量计数,但问题是它不允许我将列表类型变量转换为整数。

3 个答案:

答案 0 :(得分:2)

Integer.parseInt(Topjobscount) varibale是一个字符串,您正在尝试将其与int值进行比较。

调用string不会将int转换为Integer.parseInt(Topjobscount)。您必须将int x = Integer.parseInt(Topjobscount); if(x == (totaljobs.size())) 返回的值分配给int值然后进行比较。 试试这个。

NumberFormatException

记得抓住<div> <form action="login" method="post"> <label>Email Id</label> <input type="text" name="userModelObj.emailId"/> <label>Password</label> <input type="password" name="userModelObj.password"/> <input type="submit" value="Login"> </form> </div>

答案 1 :(得分:1)

Integer.parseInt()文档声明

  

<强>返回:       由十进制参数表示的整数值。

     

<强>抛出:        NumberFormatException - 如果字符串不包含可解析的整数。

因此,您需要将返回的值保存到Integer变量中并使用该变量。

int count = Integer.parseInt(Topjobscount);
if(count == (totaljobs.size()))

答案 2 :(得分:0)

  

Java严格来说是一种类型语言。这意味着以下。

     

您无法向方法提供任何内容,它必须严格地位于同一对象层次结构中。如果尝试提供错误类型的值作为参数,则会导致编译时错误。

E.g。在您的代码List<WebElement> totaljobs中明确指出对象的类型 totaljobs 是List。 Integer.parseInt()中的参数类型为 String 的位置。因此,您无法在需要字符串的位置提供List类型的值。 相反,您可以通过将其转换为字符串来传递列表大小,如下所示。

String.valueOf(totaljobs.size());

将返回列表大小的字符串表示。

但是,您可以通过调用Integer.parseInt(String.valueOf(totaljobs.size()));

将此字符串值转换回整数
  

但是上面没有任何意义,因为List的 size()方法,返回一个整数值。

     

Topjobscount 是一个String值,如果不将其转换为整数,则无法与int值进行比较。

因此,您可以通过将String转换为整数来更正(Topjobscount == (totaljobs.size()))。如下所示。

if (Integer.parseInt(Topjobscount) == totaljobs.size())

希望这有帮助。