Фон
У меня есть сценарий Selenium в Java, который выполняет поиск, и результат находится в разбитой на страницы таблице.Таблица навигации внизу:
[‹‹ Первая] [‹Предыдущая] [1] [2] [3] [4] [5] [Следующая›] [Последняя ››]
В некоторых случаях мой поиск возвращает 100 тысяч записей, что дает мне 10 тысяч страниц.
Проблема
Моя проблема в том, что когда я запускаю скрипт, он останавливается или падает в середине по какой-либо причине.В следующий раз, когда я запускаю скрипт, он должен пройти по всем страницам, которые я ранее искал, чтобы вернуться туда, где он остановился.Таким образом, мой сценарий будет смотреть на строку «X» и видеть, просматривал ли я эту запись, пропустить ее, если я зарегистрировался в предыдущем запуске, или сделать то, что нужно, если я не проверил ее.После того, как все строки номера страницы «Y» заполнены, перейдите на следующую страницу.Это занимает слишком много времени, когда мне нужно вернуться на страницу с большим числом.
URL не содержит никакой информации о странице и не изменяется.Остается на .... resultTable.html.
На странице нет поля ввода «Перейти к странице: []» для перехода на страницу.И мы не можем добавить его.
Решение?
Я думал, есть ли способ, которым я могу просто перейти на запрошенную страницу, может быть, с помощью JavaScript?Потому что панель навигации таблицы не позволяет переходить на страницу.Я выполнял свой поиск, и на странице 1 я проверял, на какую страницу попадал мой последний прогон, и переходил на эту страницу.Таким образом, мой сценарий не должен проходить каждую страницу 1 на 1, проверяя каждую строку, если это запись, которую я уже проверял .... (Я технически слаб в этой области, нужна ваша помощь ?)
Это код onClick = "" в таблице nav:
<a href="#"
onclick="mojarra.jsfcljs(
document.getElementById('idHere'),
{'j_idt##:#:j_idt##':'j_idt##:#:j_idt##',
'pageIndex':'',
'moveToPageNum':'##'},
'');return false"
>##</a>
Интересно, могу ли я просто отправить код javaScript с нужной мне страницей в разделе 'moveToPageNum':'##'
?
В моем сценарии в какой-то момент я использую JavascriptExecutor
для выполнения задачи, может быть, я могу использовать ее для целей, описанных выше?Пример того, как я использую его в другом месте в моем скрипте:
public static void openNewTab(WebDriver driver, String url) {
((JavascriptExecutor) driver).executeScript("window.open('" + url + " ','_blank');");
changeTab(driver, url);
}