有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在博彩网站上抽取团队只给了我13个团队的限制

我试图从中提取数据的betIn站点是betIn。我已经导航到了一个部分,其中包含了当天将要比赛的所有球队的列表,我正在尝试提取关于这些球队的信息,但我目前只能获得13支球队,而不是所有球队。起初,我认为将值存储在数组中是个问题,因此我选择了移动到ArrayList,但仍然存在相同的问题,下面是我的代码:

public class test {

public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver", "/Users/user/Desktop/chromedriver");

    WebDriver driver = new ChromeDriver();driver.navigate().to("https://sports.betin.co.ke/mobile#/dailyBundle/soccer/1-1000");
    List<WebElement> rows = driver.findElements(By.cssSelector(".match-content.table-a.soccer"));
    java.util.Iterator<WebElement> row_list = rows.iterator();
    ArrayList<String> teams = new ArrayList<>();
    ArrayList<String> bets = new ArrayList<>();
    while(row_list.hasNext()){
        WebElement rowItem = row_list.next();
        String unnecessary = rowItem.findElement(By.cssSelector(".match-content__row--info")).getText();
        String Content = rowItem.findElement(By.cssSelector(".match-content__info")).getText();
        String relevantContent = Content.replace(unnecessary,"");
        String bet = rowItem.findElement(By.cssSelector(".bets")).getText();
        teams.add(relevantContent);
        bets.add(bet);
    }
    System.out.println("These are the teams \n"+ teams);

    System.out.println("The size of teams is "+ teams.size());

    System.out.println("These are the odds \n"+ bets);
    driver.close();

}

}


共 (1) 个答案

  1. # 1 楼答案

    你注意到了吗rows.size()总是显示为零

    这是因为页面未完全加载,但代码正在执行

    如果我通过应用一些wait来运行你的代码,它运行得非常好。我能得到所有球队

    Thread.sleep(10000) // wait for 10 seconds
    List<WebElement> rows = testDriver.findElements(By.cssSelector(".match-content.table-a.soccer")); 
    

    在代码之间使用sleep不是明智之举。所以,为了确保你的页面被完全加载,请检查这个Selenium - How to wait until page is completely loaded