Selenium循环sendKeys

时间:2015-07-01 20:19:16

标签: java facebook loops selenium for-loop

所以我已经足够在facebook上找到文本框,并向一个人发送消息。现在我想看看我是否可以创建一个循环来一次发送多个消息。我目前的问题是我有一个for循环:

for (int i = 0; i < 20; i++) {
    messageBox.sendKeys("My friend's name " + i + " ");
    messageBox.sendKeys(Keys.ENTER);
}

但是,我只能这样做一次。所以它将打印“我朋友的名字0”,然后停止。 Java说:元素没有附加到页面文档。

我假设因为我发送了消息,Inspect Element的某些部分已经改变了?有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

从Excel表格中获取朋友的姓名

制作一个从excel文件中获取数据的方法: -

public static void fn_FetchExcelData(String FilePath,String ColumnName) throws IOException{
               String WbookPath=FilePath;
                  Workbook WBookObj=fn_GetWorkbook(FilePath);
                  Sheet SheetObj=WBookObj.getSheetAt(0);
                  Row FstRowObj=SheetObj.getRow(0);
                  int cellCount=FstRowObj.getLastCellNum();
                  int columnNumber=0;
                  ArrayList<String> AL=new ArrayList<String>();
                  for(int j=0; j<cellCount;j++){
                      if(FstRowObj.getCell(j, Row.CREATE_NULL_AS_BLANK).getStringCellValue().trim().equalsIgnoreCase(ColumnName)){
                          columnNumber=j;
                          break;
                      }
                  }
                  int rowcnt=SheetObj.getLastRowNum();
                     for(int i=1;i<=rowcnt;i++){
                      Cell fstcellObj=SheetObj.getRow(i).getCell(columnNumber, Row.CREATE_NULL_AS_BLANK);
                      String ColumnVal=fstcellObj.getStringCellValue();


               AL.add(ColumnVal);

call excel method & use it



  fn_FetchExcelData("Your excel data path");
                  int j;
                     int size = AL.size();
                        for(j=0;j<size;j++)
                        {
                            System.out.println(AL.get(j));

                 messageBox.sendKeys(AL.get(j));

答案 1 :(得分:0)

没关系我弄清楚了,我刚刚添加了

                  WebElement messageBox = driver.findElement(By.xpath("//textarea[@class='uiTextareaAutogrow _552m']"));
                wait.until(ExpectedConditions.visibilityOf(messageBox));

再次循环,它的工作原理。然而它非常慢。