51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2338|回复: 4
打印 上一主题 下一主题

返回boolean类型的值脚本报错

[复制链接]
  • TA的每日心情
    开心
    2015-6-11 11:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2015-7-14 18:11:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

    请大家帮我看看这段脚本问题出在哪里呢?
    public boolean checkSearchEndty(String keyword, String SearchBy) throws InterruptedException {
                            Library.menuBar(driver, "entity");
                   
                            //select searchBy and input the keyword, click Search
                            new Select(driver.findElement(By.id("searchfield"))).selectByVisibleText(SearchBy);       
                            lib.waitForElementDisplayed(driver, 3, By.id("view"));
                            driver.findElement(By.id("searchphrase")).sendKeys(keyword);
                            driver.findElement(By.linkText("Search")).click();
                            Thread.sleep(5000);                       
                            //verify search result found, if no search result found then stop

                            boolean isDisplayed = lib.waitForElementDisplayed(driver, 20, By.id("ListTable"));
                            boolean searchResult = false;
                                                   
                            if (isDisplayed == false) {
                                    searchResult = true;
                                    driver.close();
                                    return searchResult;
                            }
                           
                            //verify search result found, if the search results are found then check the result
                            else {
                                                                   
                                    //get the td number of SearchBy in the search result table,
                                    List<WebElement> ths = driver.findElements(By.xpath("//table[@id='ListTable']/tbody/tr[1]/th"));
                                    int totalCol = ths.size();
                                    System.out.println("totalCol=" + totalCol);
                                    int tdNum = 1;       
                           
                                    for (int i = 1; i < totalCol; i++) {
                                           
                                            if (ths.get(i).getText().trim().equals(SearchBy)) {
                                                   
                                                    tdNum = i+1;
                                                    break;
                                            }
                                            else {
                                            }
                                    }
                                                   
                                    //based on the td number, verify each result in the select td for each row.
                                    List<WebElement> trs = driver.findElements(By.xpath("//table[@id='ListTable']/tbody/tr[contains(@class,'grid_')]"));                       
                                   
                                    int totalRow = trs.size();
                                   
                                    for (int i = 2; i <= totalRow; i++) {
                                            String actualText = trs.get(i).findElement(By.xpath("td["+tdNum+"]")).getText();
                                            searchResult = Library.assertWaitForTrue(2, actualText.equals(keyword));
                                           
                                            if (searchResult == false) {
                                                    break;
                                                   
                                            }
                                    }
                                   
                            }                       
                            return searchResult;
                    }
    }


    报错

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2015-6-11 11:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2015-7-15 17:18:44 | 只看该作者
    jingzizx 发表于 2015-7-15 10:34
    原因分析:Java.lang.IndexOutOfBoundException为数组下标越界的错误
    解决: int totalCol = ths.size(); in ...

    打印出来就查到问题了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-6-11 11:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2015-7-15 17:18:06 | 只看该作者

    是的,这里错了
    for (int i = 0; i < totalRow; i++)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 2818 天

    连续签到: 6 天

    [LV.Master]测试大本营

    3#
    发表于 2015-7-15 10:34:36 | 只看该作者
    原因分析:Java.lang.IndexOutOfBoundException为数组下标越界的错误
    解决: int totalCol = ths.size(); int totalRow = trs.size();两个取值后循环中不是从0开始:  for (int i = 1; i < totalCol; i++)  for (int i = 2; i <= totalRow; i++)
          估计是这里越界,建议楼主把totalCol, totalRow两个值打印出来看看,是不是这里的问题

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 恭喜你获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2015-7-15 09:39:17 | 只看该作者
    i <= totalRow这个是不是会造成越界?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 13:22 , Processed in 0.075219 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表