Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用ArrayList在selenium中传递Sendkeys中的字符串值_Java_Selenium - Fatal编程技术网

Java 无法使用ArrayList在selenium中传递Sendkeys中的字符串值

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

因为我对selenium是新手,所以我尝试从excel工作表中读取数据,格式是.xlsx。。。问题是我无法在这里传递uName和pWord值。我正在使用EclipseIDE(Galileo),JDK1.7..使用Apache中的POI库

下面是代码,请建议我。非常感谢您的光临

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));