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 楼答案
你注意到了吗
rows.size()
总是显示为零这是因为页面未完全加载,但代码正在执行
如果我通过应用一些wait来运行你的代码,它运行得非常好。我能得到所有球队
在代码之间使用
sleep
不是明智之举。所以,为了确保你的页面被完全加载,请检查这个Selenium - How to wait until page is completely loaded