Java 无法使用ArrayList在selenium中传递Sendkeys中的字符串值
因为我对selenium是新手,所以我尝试从excel工作表中读取数据,格式是.xlsx。。。问题是我无法在这里传递uName和pWord值。我正在使用EclipseIDE(Galileo),JDK1.7..使用Apache中的POI库 下面是代码,请建议我。非常感谢您的光临Java 无法使用ArrayList在selenium中传递Sendkeys中的字符串值,java,selenium,Java,Selenium,因为我对selenium是新手,所以我尝试从excel工作表中读取数据,格式是.xlsx。。。问题是我无法在这里传递uName和pWord值。我正在使用EclipseIDE(Galileo),JDK1.7..使用Apache中的POI库 下面是代码,请建议我。非常感谢您的光临 public class TestDataExcl { /** * @param args * @throws Throwable * @throws Exception */ public static v
public class TestDataExcl {
/**
* @param args
* @throws Throwable
* @throws Exception
*/
public static void main(String[] args) throws Exception {
TestDataExcl tDataObj = new TestDataExcl();
ArrayList<String> uName = autoInputFromList(0);//Ive tried as ArrayList uName = autoInputFromList(0)..
ArrayList<String> pWord = autoInputFromList(1);
WebDriver driver = new FirefoxDriver();
driver.get("https://www.facebook.com/");
driver.findElement(By.id("email")).sendKeys(uName);//Error as:The method sendKeys(CharSequence...) in the type WebElement is not applicable for the arguments (ArrayList<String>)
driver.findElement(By.id("pass")).sendKeys(pWord);//Same as the abover error, it is not recognizing uName, pWord..
//tDataObj.autoInputFromList(0);
}
//-------------------------------Reading Data From Excel File-----------------------------//
public static ArrayList<String> autoInputFromList(int colNo) throws Exception{
String filePath = "D:\\firstFile.xlsx";
FileInputStream fisObj = new FileInputStream(filePath);
XSSFWorkbook wbObj = new XSSFWorkbook(fisObj);
XSSFSheet shObj = wbObj.getSheet("Sheet1");
//Sheet shObj = wbObj.getSheetAt(0);
Iterator<Row> rowIt = shObj.iterator();
//<Row> int i = 0;
ArrayList<String> list = new ArrayList<String>();
rowIt.next();
while(rowIt.hasNext()){
list.add(rowIt.next().getCell(colNo).getStringCellValue());
}System.out.println("List::"+list);
return list;
}
公共类TestDataExcl{
/**
*@param args
*@可丢弃
*@抛出异常
*/
公共静态void main(字符串[]args)引发异常{
TestDataExcl tDataObj=新的TestDataExcl();
ArrayList uName=autoInputFromList(0);//我试过ArrayList uName=autoInputFromList(0)。。
ArrayList pWord=自动输入FromList(1);
WebDriver=newfirefoxdriver();
驱动程序。获取(“https://www.facebook.com/");
driver.findElement(By.id(“email”)).sendKeys(uName);//错误为:类型WebElement中的方法sendKeys(CharSequence…)不适用于参数(ArrayList)
driver.findElement(By.id(“pass”)).sendKeys(pWord);//与上述错误相同,它无法识别uName,pWord。。
//tDataObj.autoInputFromList(0);
}
//-------------------------------从Excel文件读取数据-----------------------------//
公共静态ArrayList autoInputFromList(int colNo)引发异常{
String filePath=“D:\\firstFile.xlsx”;
FileInputStream fisObj=新的FileInputStream(filePath);
XSSF工作簿wbObj=新XSSF工作簿(fisObj);
XSSFSheet shObj=wbObj.getSheet(“Sheet1”);
//Sheet shObj=wbObj.getSheetAt(0);
迭代器rowIt=shObj.Iterator();
//int i=0;
ArrayList=新建ArrayList();
rowIt.next();
while(rowIt.hasNext()){
添加(rowIt.next().getCell(colNo.getStringCellValue());
}System.out.println(“列表::”+List);
退货清单;
}
}sendKeys()接受字符串类型的参数,而不是列表。因为,您的autoInputFromList()方法返回字符串类型的ArrayList,所以可以获取第一项并分别将其分配给uName&pWord,如下所示:
String uName = autoInputFromList(0).get(0);
String pWord = autoInputFromList(1).get(0);
sendKeys
方法将String
或字符串数组(String[])
作为参数
您可以将值作为字符串传递,也可以将ArrayList转换为字符串[]
driver.findElement(By.id("email")).sendKeys(uName.toArray(new String[0]));
如果您使用的是java 8:
@约翰尼:很乐意帮忙,欢迎来到Stack Overflow。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受
driver.findElement(By.id("email")).sendKeys(uName.stream().toArray(String[]::new));