Добрый день.
Есть веб-страница, на которой периодически (3-10 сек) меняются данные.
Получаю исходный код страницы с помощью pageSource, однако остаётся неизменным с момента загрузки страницы.
Почему так происходит?
Перезагружать страницу долго и придётся слишком часто.
не обновляется код страницы в pageSource
#1
Отправлено 26 апреля 2018 - 15:57
#2
Отправлено 26 апреля 2018 - 20:22
потому, что если
a = 5
b = a
a =7
то b в этом месте нифига не 7, а все еще 5.
Ищите какой-нибудь признак обновления страницы и по нему перезагружайте pageSource
#3
Отправлено 26 апреля 2018 - 20:32
А как можно перезагрузить pageSource?
Просто присвоить строке pageSource? Я это делаю (в цикле - раз в несколько секунд). Не меняется.
Или нужно принудительно обновить страницу?
#4
Отправлено 27 апреля 2018 - 08:16
попробуйте руками через девтулс, посмотрите где там и что меняется
#5
Отправлено 27 апреля 2018 - 08:18
Вариант номер 2
page и не меняется, меняется динамический контент генерируемый скриптами. И его в pageSource вы не увидите впринципе
#6
Отправлено 27 апреля 2018 - 09:44
Вариант номер 2
page и не меняется, меняется динамический контент генерируемый скриптами. И его в pageSource вы не увидите впринципе
динамический контент всё равно будет в доме
#7
Отправлено 27 апреля 2018 - 09:51
Например, если у меня поменялось свойство у элемента или данные на странице, изменяемые скриптом, то pageSource меняется.
#8
Отправлено 27 апреля 2018 - 10:38
может у него данные во фрейме меняются, а пейджсорс не берёт его
#9
Отправлено 27 апреля 2018 - 10:48
А что за данные? Не проще ли их получать через API?
#10
Отправлено 27 апреля 2018 - 11:46
investing - котировки акций, изменяются довольно часто.
Данные в исходном коде странице изменяются и видны - проверял.
API вроде бы нет.
#11
Отправлено 27 апреля 2018 - 12:21
значит надо сохранить код из страницы руками в один файл
и код который возвращает пейджсорс сохранить в другой файл
и просто сравнить два файла
#12
Отправлено 27 апреля 2018 - 16:17
Да, я сравнивал.
У меня есть цикл - в нём каждые 3 сек. получаю pageSource.
В первый раз, когда я его считываю - он тот же, что и руками проверяю.
Потом он такой же (на следующих итерациях цикла), хотя если смотреть вручную - он меняется.
#13
Отправлено 27 апреля 2018 - 16:58
#14
Отправлено 28 апреля 2018 - 19:29
Я не ищу никакой элемент.
Я просто через каждые 3 секунды получаю pageSource, который должен меняться.
Это значит - что надо каждые 3 секунды обновлять страницу, чтобы Selenium перезагрузил код страницы?
#15
Отправлено 29 апреля 2018 - 07:35
#16
Отправлено 29 апреля 2018 - 10:58
Не из элемента, а это код всей страницы.
#17
Отправлено 29 апреля 2018 - 11:15
#18
Отправлено 29 апреля 2018 - 15:42
Я тоже склонен думать к этому. Может переменная или ссылка на нее не обновляется? Что если попробовать использовать вторую переменную и сравнить?Надо объект обновить для которого вызывается pagesource
#19
Отправлено 29 апреля 2018 - 17:53
Ну так для этого придётся обновить саму страницу, т.к. я получаю код страницы, а не отдельного элемента.
А она долго обновляется - 8-12 сек, поэтому это не подходит.
#20
Отправлено 30 апреля 2018 - 12:02
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных