У меня есть веб-сайт с длинной горизонтальной таблицей.У меня есть Xpath, который извлекает заголовки столбцов таблицы, которая превышает ширину экрана (в 3 раза больше ширины экрана).Теперь мне нужно извлечь все заголовки столбцов с соответствующим индексом, так как в моей таблице есть фильтры столбцов, из которых пользователь может выбрать или отменить выбор строк.Поэтому мне нужно динамически выбирать столбцы с индексом.Теперь, когда я пытаюсь получить заголовки столбцов в первый раз, система извлекает мне заголовки столбцов, пока они не будут видны на первом экране без прокрутки, но теперь, когда система пытается получить заголовок столбца, который не виден в Chrome, тогда кодвозвращает нулевое значение
Я попытался получить общее количество столбцов и проверил, что прокрутка вправо на 8 столбцов будет работать, но с этим я не могу повторно использовать эту функцию в другой сетитаблицы, где есть меньшие столбцы, так как система не находит столбец i + 8 и показывает исключение.
Я пытался прокрутить вправо каждый раз на один столбец, когда получаю заголовок столбца какпустой.Но при этом мой код должен каждый раз проверять условие if, когда оно становится пустым, и это делает мой метод очень медленным, что я не могу себе позволить, так как мне нужно получить как минимум 35 столбцов, а это слишком больше 2-3время в более крупных методах.
Теперь, что я знаю здесь, так это то, что я знаю, какой заголовок последнего столбца был мне виден, поэтому мне нужно прокрутить вправо, пока заголовок столбца у меня не былвидимый мне на экране, что означает, что я прокрутил максимум вправо, не скрывая столбец, который я не охватил.Как я могу это сделать?
Это то, что я пытался прокрутить на 8 столбцов, видя общую ширину столбцов.Это работает для меня, но ограничивает возможность повторного использования функции.
if (colHead.equalsIgnoreCase("")) {
WebElement elementToBeScrolled1 = driver.findElement(By.xpath("//th["+i+"+8]"));
By elementToBeScrolled = getByLocator(elementToBeScrolled1);
do {
keyPress(Keys.ARROW_RIGHT);
} while (waitForElement(elementToBeScrolled, 5, WaitType.invisibilityOfElementLocated));
colHead = driver.findElement(By.xpath("//th[" + i + "]"))
.getText();