【发布时间】:2018-10-10 12:07:25
【问题描述】:
您好,我正在尝试为排行榜上的每个玩家设置一个人员类别,因为我不知道排行榜要多长时间,我将尝试通过排行榜中的行数来循环人数。然后我试图“获取”每一行的积分并再次比较前一个以断言较高的数字是最高的,我以前从未使用过 getter 和 setter,似乎无法弄清楚如何做到这一点,有什么帮助吗? ?
这是我想要为每个人提供的信息的代码,我需要找到 player_picks、position 和 player_points。然后,当我在排行榜上下降时,我需要将每个 player_picks 的总数与每个玩家进行比较。如果 pick_total 相等,我需要比较他们的总分。我已经尝试了几个星期,但有人建议创建一个玩家类,然后使用 get 和 setter 为他们每个人分配属性会更容易。所以我可以将 player1 与 player 2、player 2 和 player 3 等进行比较。让 mit 变得困难的是我每次都不知道列表的大小,所以让我很困惑。
下面是我使用的代码,它给了我看起来要“设置”的属性,但我不知道如何在人员类中设置“人员”,因为每次需要的人数都在变化(使用 int大小)作为不同数量的人加入每个游戏。
我是新手,所以如果我没有很好地解释这一点,请告诉我。
public void test_player_leaderboard_entry() {
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;
}
//System.out.println(total_of_won_and_looking_good);
}
//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 selenium testing automation