【问题标题】:Compare values for the previous rows on leaderboard table, simple query比较排行榜表上前几行的值,简单查询
【发布时间】:2018-10-03 13:01:30
【问题描述】:

我正在尝试比较前每一行的拣货状态,以确保拣货状态高于前一行。用户进行了 4 次选择,如果选择状态为 1 或 2,则将其添加到选择状态总数中。

won_and_looking_good 总分最高的用户名列前茅,但如果用户总分相同,则考虑他们的 points_player。

我基本上是在尝试将 total_of_won_and_looking_good 与上一行中的 total_of_won_and_looking_good 进行比较,我似乎可以弄清楚如何做到这一点。这是我的代码:

test_player_leaderboard_entry() {

    int previous_total = 0;

    int size = playerRows.size();


    for (int i = 0; i < size; i++) {

        //Position
        String position_first_player = Drivers.getDriver().findElement(By.cssSelector("[data-qa-position-value='" + i + "']")).getText();
        //Points
        String points_player = Drivers.getDriver().findElement(By.cssSelector("[data-qa-points-value='" + i + "']")).getText();
        //Username
        String username_player = Drivers.getDriver().findElement(By.cssSelector("[data-qa-player-value='" + i + "']")).getText();
        //Row Number
        Integer row = i + 1;
        Integer total_of_won_and_looking_good = 0;
        //PICKS
        for (int pick_number = 1; pick_number < 5; pick_number++) {
            String pick_status = Drivers.getDriver().findElement(By.xpath("//*[@id='root']/div/main/section[2]/section/div/ol/a[" + row + "]/li/div[3]/div[" + pick_number + "]/div")).getAttribute("data-qa-pick-state");
            //System.out.println(pick_status);
            if (Integer.parseInt(pick_status) == 2 || Integer.parseInt(pick_status) == 1) {
                total_of_won_and_looking_good = total_of_won_and_looking_good + 1;

            }
            }if (i > 0 && total_of_won_and_looking_good >= previous_total) {
            System.out.println("Pick amounts are the same");

        }

        System.out.println("On row number " + row + " we find " + username_player + " in position " + position_first_player + " with " + total_of_won_and_looking_good + " correct picks and " + points_player + " points!");
    }
}

【问题讨论】:

  • 如果你保持缩进一致,你和其他人就更容易理解你的代码在做什么。

标签: java arrays selenium testing automation


【解决方案1】:

所以你想测试total_of_won_and_looking_good 单调递减。

您需要记录之前的值,如果您不在第一行,请将新值与之前的值进行比较。

您需要一个新的局部变量: int previous_total; 声明在 test_player_leaderboard_entry 主体的第一行。 在计算出新值之后,类似于:

if (i > 0 && total_of_won_and_looking_good > previous_total) {
    // report the error
}
previous_total = total_of_won_and_looking_good;

就在您当前的System.out.println 之前。

【讨论】:

  • 我正在尝试类似的东西,但我一直将以前的总数设置为当前的总数,我无法确定循环中存储前一个和当前的位置
  • 我的回答更明确了。如果有帮助,请告诉我。
  • 我试过像上面那样改变它,但似乎不能让它工作
  • 你永远不会设置previous_total
猜你喜欢
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 2020-05-26
  • 1970-01-01
  • 2013-04-12
  • 2020-07-11
相关资源
最近更新 更多