我嘗試執行下面粘貼的webdriver代碼,其中username字段是String,付款字段類型是double。它的執行錯誤消息粘貼在下面。Webdriver例外:Double不能轉換爲java.lang.String
可我知道如何從這個
錯誤克服:
Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String
webdriver的Java代碼:
package exceltest;
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class sample {
public static void main(String[] args) throws Exception {
String [][] data;
data = excelread();
String expectedtitle;
for (int i = 1; i < data.length; i++)
{
expectedtitle = Paymentdetails(data[i][0],data[i][1]);
System.out.println("page title after login is" + expectedtitle);
if(expectedtitle.equalsIgnoreCase("homepage Title"))
{
System.out.println("PASSED");
}
else{
System.out.println("FAILED");
}
}
}
public static String Paymentdetails(String username,String payment) throws InterruptedException {
WebDriver driver = new FirefoxDriver();
driver.get("http://localhost/xxx/Default.aspx");
Thread.sleep(1000);
//driver.findElement(By.id("LoginUserName")).clear();
driver.findElement(By.id("LoginUserName")).sendKeys(username);
//driver.findElement(By.id("LoginPayment")).clear();
driver.findElement(By.id("LoginPayment")).sendKeys(payment);
driver.findElement(By.id("LoginLoginButton")).click();
Thread.sleep(1000);
String expectedtitle = driver.getTitle();
return expectedtitle;
}
public static String [][] excelread()throws Exception
{
File excel = new File("D:\\Book1.xlsx");
FileInputStream fis = new FileInputStream(excel);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet ws = wb.getSheet("Sheet1");
int totrow = ws.getLastRowNum()+ 1;
int totcol = ws.getRow(0).getLastCellNum();
String [][] data = new String[totrow][totcol];
for (int i = 0 ; i < totrow ; i++) {
XSSFRow row = ws.getRow(i);
for (int j=0 ; j < totcol ; j++){
XSSFCell cell = row.getCell(j);
String value = cellToString(cell);
data[i][j] = value;
System.out.println("The value is " + value);
}
}
return data;
}
public static String cellToString(XSSFCell cell) {
int type;
Object result ;
type = cell.getCellType();
switch (type) {
case 0 :
result = cell.getNumericCellValue();
break;
case 1 :
result = cell.getStringCellValue();
break;
default :
throw new RuntimeException("There are no support for this type of cell");
}
return (String) result();
}
}
什麼語句你得到這個例外? – Shail016
@ Shail016在excelread(),celltostring()方法 – Arun