Поскольку в этой таблице используется React, элементы даже не будут существовать на странице, если вы не прокрутите их вниз.Я знаю, что вы упомянули, что прокрутка не является оптимальным решением, но если вам нужны все строки в таблице, прокрутка является единственным выбором здесь.
Я реализовал пример метода ScrollDown, который использует координаты для прокрутки внизстраница.Код написан на C #, но идея аналогична и для других языков.
Для прокрутки с использованием Javascript вам потребуется указать координаты для прокрутки.Если вы хотите прокрутить несколько раз - например, прокрутить вниз, получить строки таблицы, продолжить прокрутку вниз и получить строки таблицы до достижения конца таблицы - вам нужно обновить yCoordinate
, с которым вы прокручиваете.Поскольку прокрутка - это процесс повышения / понижения, вы можете использовать один и тот же xCoordinate
каждый раз.
Относительно increment
- эта переменная указывает, насколько вы хотите прокрутить сразу.increment
должно быть равно количеству пикселей, которые вы хотите прокрутить.Если вы хотите прокрутить 3 строки одновременно, а каждая строка имеет высоту 100 пикселей, вам нужно установить increment
на 300.
Поскольку я не знаю размер или макет вашей страницы, я не могу предоставитьболее подробный метод для вас.Я рекомендую реализовать этот метод и поэкспериментировать с различными координатами x / y для прокрутки, чтобы получить персонализированное решение для вашего тестового приложения.
public void ScrollDown(int startX, int startY, int increment, int numberOfScrolls)
{
// cast webdriver to javascript executor
var executor = ((IJavaScriptExecutor) driver);
// keep track of current y coordinate
// since we are scrolling down, y coordinate will change with each scroll
var currentYCoordinate = startY;
// scroll down in a loop
for (int i = 0; i < numberOfScrolls; i++)
{
// scroll down
executor.ExecuteScript("window.scrollTo({startX}, {currentYCoordinate});");
// todo: implement any FindElement methods to get the new elements which have been scrolled into view.
// update y coordinate since we just scrolled down
currentYCoordinate = currentYCoordinate + increment;
}
}