Перейти к содержимому

Фотография

не обновляется код страницы в pageSource


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 28

#1 mraklbrw

mraklbrw

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Сорокин Денис

Отправлено 26 апреля 2018 - 15:57

Добрый день.
Есть веб-страница, на которой периодически (3-10 сек) меняются данные.
Получаю исходный код страницы с помощью pageSource, однако остаётся неизменным с момента загрузки страницы.
Почему так происходит?
Перезагружать страницу долго и придётся слишком часто.


  • 0

#2 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 26 апреля 2018 - 20:22

потому, что если 

a = 5

b = a

a =7

то b в этом месте нифига не 7, а все еще 5.

 

Ищите какой-нибудь признак обновления страницы и по нему перезагружайте pageSource


  • 0

#3 mraklbrw

mraklbrw

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Сорокин Денис

Отправлено 26 апреля 2018 - 20:32

А как можно перезагрузить pageSource?

Просто присвоить строке pageSource? Я это делаю (в цикле - раз в несколько секунд). Не меняется.

Или нужно принудительно обновить страницу?


  • 0

#4 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 27 апреля 2018 - 08:16

попробуйте руками через девтулс, посмотрите где там и что меняется


  • 0

#5 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 27 апреля 2018 - 08:18

Вариант номер 2

page и не меняется, меняется динамический контент генерируемый скриптами. И его в pageSource вы не увидите впринципе


  • 0

#6 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 27 апреля 2018 - 09:44

 

Вариант номер 2

page и не меняется, меняется динамический контент генерируемый скриптами. И его в pageSource вы не увидите впринципе

динамический контент всё равно будет в доме


  • 0

#7 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 27 апреля 2018 - 09:51

Да, хотелось бы понять, что за конкретно данные.
Например, если у меня поменялось свойство у элемента или данные на странице, изменяемые скриптом, то pageSource меняется.
  • 0

#8 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 27 апреля 2018 - 10:38

может у него данные во фрейме меняются, а пейджсорс не берёт его


  • 0

#9 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 27 апреля 2018 - 10:48

А что за данные? Не проще ли их получать через API?


  • 0

#10 mraklbrw

mraklbrw

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Сорокин Денис

Отправлено 27 апреля 2018 - 11:46

investing - котировки акций, изменяются довольно часто.

Данные в исходном коде странице изменяются и видны - проверял.

API вроде бы нет.


  • 0

#11 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 27 апреля 2018 - 12:21

значит надо сохранить код из страницы руками в один файл

 

и код который возвращает пейджсорс сохранить в другой файл

 

и просто сравнить два файла


  • 0

#12 mraklbrw

mraklbrw

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Сорокин Денис

Отправлено 27 апреля 2018 - 16:17

Да, я сравнивал.

У меня есть цикл - в нём каждые 3 сек. получаю pageSource.

В первый раз, когда я его считываю - он тот же, что и руками проверяю.

Потом он такой же (на следующих итерациях цикла), хотя если смотреть вручную - он меняется.


  • 0

#13 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 27 апреля 2018 - 16:58

Значит надо заново объявить тот вебелемент перед тем как запрашивать pagesource
  • 0

#14 mraklbrw

mraklbrw

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Сорокин Денис

Отправлено 28 апреля 2018 - 19:29

Я не ищу никакой элемент.

Я просто через каждые 3 секунды получаю pageSource, который должен меняться.

Это значит - что надо каждые 3 секунды обновлять страницу, чтобы Selenium перезагрузил код страницы?


  • 0

#15 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 29 апреля 2018 - 07:35

Ну а пейджсорс же не из воздуха получаешь, а из конкретного элемента который был найден ранее?
  • 0

#16 mraklbrw

mraklbrw

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Сорокин Денис

Отправлено 29 апреля 2018 - 10:58

Не из элемента, а это код всей страницы.


  • 0

#17 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 29 апреля 2018 - 11:15

Надо объект обновить для которого вызывается pagesource
  • 0

#18 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 29 апреля 2018 - 15:42

Надо объект обновить для которого вызывается pagesource

Я тоже склонен думать к этому. Может переменная или ссылка на нее не обновляется? Что если попробовать использовать вторую переменную и сравнить?
  • 0

#19 mraklbrw

mraklbrw

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Сорокин Денис

Отправлено 29 апреля 2018 - 17:53

Ну так для этого придётся обновить саму страницу, т.к. я получаю код страницы, а не отдельного элемента.

А она долго обновляется - 8-12 сек, поэтому это не подходит.


  • 0

#20 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 30 апреля 2018 - 12:02

Покажите лучше часть кода, где вы в цикле каждые 3 секунды считываете pageSource, может там какая-то ошибка.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных