Я пытаюсь почистить некоторые данные с сайта whoscored.com. (https://www.whoscored.com/Regions/81/Tournaments/6/Seasons/7406/Stages/16428/PlayerStatistics/Germany-Bundesliga-II-2018-2019)
Я нажимаю на подробную вкладку и сортирую игроков немецкой второй бундеслиги по минутам. Проблема заключается в том, что после нажатия на эти вкладки и, как представляется, успешно получить новую таблицу (первый блок кода)
celtext по-прежнему дает мне значение исходной таблицы, которая была до нажатия на вкладку минут и подробностей. (второй блок кода)
Как мне убедиться, что я получаю обновленную информацию при получении celtext?
Требуется вывод:
- первый клик подробно
- клик мин.
- первым человеком должен быть Даниэль Эурер Фернандес
вывод в реальности:
- первый клик подробно (успешно)
- Нажмите минут (игроки сортируются по минутам)
- get celtext (показана вся информация о Филиппе Клементе .... :()
Очень ценю вашу помощь!
проверенные решения
Я пытался перевести Thread в спящий режим на 8 секунд после каждого щелчка по таблице, но это не повлияло на результат. Я знаю, что это, вероятно, связано с тем, что элементы загружаются не полностью или щелчок не приводит к «жесткому щелчку», который влияет на данные. Однако страница меняется на таблицу, в которой я хочу ее видеть.
код
WebElement detail = driver.findElement(By.xpath("//*[@id=\"detailed-statistics-tab\"]/a")); // selects detailed tab in stats
ex.executeScript("arguments[0].click();", detail);
int ok_size1=driver.findElements(By.xpath("//*[@id=\"player-table-statistics-head\"]/tr/th[5]")).size(); // sorts by mins
driver.findElements(By.xpath("//*[@id=\"player-table-statistics-head\"]/tr/th[5]")).get(ok_size1-1).click();
WebElement theTable = driver.findElement(By.xpath("//*[@id=\"player-table-statistics-body\"]"));
List < WebElement > rows_table = theTable.findElements(By.tagName("tr"));
rows_count = rows_table.size();
for (int row = 0; row < rows_count; row++) {
List < WebElement > Columns_row = rows_table.get(row).findElements(By.tagName("td"));
int columns_count = Columns_row.size();
for (int column = 0; column < columns_count; column++) {
String celtext = Columns_row.get(column).getAttribute("innerHTML");
Ожидайте выход Даниэля Хера Фернандеса, но получите Филиппа Климента