2016-06-08 150 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()); 
相關問題