2016-06-08 87 views
1

我试图将字符串从webelement转换为整数。无法将字符串值从Web元素转换为双倍

不过,我得到以下错误parseInt

enter image description here

public String getLoanAmount() { 
    return loanAmount.getText(); 
    int i = Integer.parseInt(driver.findElement(By.id("00N28000001bbuD_ileinner"))).getText(); 
    double d = i; 
    if ((d < 15000) || (d > 35000)) { 
     System.out.println("Error: Loan Amount should not be NULL and should be between 5000 to 35000 AUD."); 
    } 
    else { 
     System.out.println("Entered value in the Loan Amount field is within appropriate range."); 
    } 
} 

任何人都可以协助在这个问题上?首先这可能吗?并且是实现它的正确步骤?

+0

该错误信息是明确的:你试图将字符串转换成该整数,它不能完成,很可能是因为字符串不是数字的表示。 –

+0

@TimBiegeleisen你从哪里得到这些信息? – shmosel

回答

1

您只能有一个字符串作为该分析方法的参数。我假设.getText()得到一个字符串,如果是的话,你的括号是错误的。试试这个。注意括号的位置。

int i = Integer.parseInt(driver.findElement(By.id("00N28000001bbuD_ileinner")).getText()); 
1

第一行或您的方法是return这意味着什么也没有后它会运行。一旦你解决这一变化以下行

int i = Integer.parseInt(driver.findElement(By.id("00N28000001bbuD_ileinner"))).getText(); 

int i = Integer.parseInt(driver.findElement(By.id("00N28000001bbuD_ileinner")).getText()); 

通知支架的位置是的getText(后),而不是之前

+0

谢谢大家的意见。通过在处理if循环之后放置返回值并在getText()之后纠正括号放置来解决问题, – Gauravj

1

有一些问题与您的代码:

第1期

方法getLoanAmount()的第一行是:

return loanAmount.getText(); 

方法将在该行返回的值。所以,return声明下面的任何一行都不会被执行。

第2期

Integer.parseInt(String)期待一个String说法...不是一个WebElement

所以,你不能直接传递到WebElementInteger.parseInt(String)

首先,你必须让来自WebElement的字符串。

基于THIS ASNWER你必须做到:

WebElement webElem = driver.findElement(By.id("00N28000001bbuD_ileinner")); 
int i = Integer.parseInt(webElem.getAttribute("value")); 

OR

WebElement webElem = driver.findElement(By.id("00N28000001bbuD_ileinner")); 
int i = Integer.parseInt(webElem.getText());