Playwright, Selenium, etc.. Вопрос про специфику работы данных инструментов.

leoworker
На сайте с 25.02.2019
Offline
47
256

Делаю тест:

  1. Зайти на страничку

  2. Нажать на кнопку сортировки и выбрать "По новизне"

  3. Сделать паузу (3-5 сек)

  4. Забрать комментарии в массив

Проблема в том, что когда захожу на страницу, кнопка сортировки выставлена "По умолчанию".

Когда выбираю "По новизне", делаю паузу и забираю комментарии, то, забираются комментарии, как будто кнопка выставлена "По умолчанию" и в массив заходят именно в этой последовательности, а нужно, чтобы по новизне были отсортированы. Проблема как я понимаю в DOM-дереве и Playwright, Selenium видят "старую" версию DOM'а, потому что данные подгрузились динамически.

Как правильно обрабатывать такие моменты? Как заставить Playwright и Selenium видеть измененную структуру HTML?


S3
На сайте с 29.03.2012
Offline
337
#1
После нажатия на кнопку заново получи элемент, да и все. Типа driver.find(by.css ‚elem’)
leoworker
На сайте с 25.02.2019
Offline
47
#2
Sly32 #:
После нажатия на кнопку заново получи элемент, да и все. Типа driver.find(by.css ‚elem’)

Я всего один раз получаю комментарии, после нажатия на кнопку "По новизне" и выдержке в 3-5 сек. По идее должно было взять эти комментарии уже в отсортированной последовательности (по новизне). Но почему то так не работает. 

lutskboy
На сайте с 22.11.2013
Offline
183
#3
leoworker #:

Я всего один раз получаю комментарии, после нажатия на кнопку "По новизне" и выдержке в 3-5 сек. По идее должно было взять эти комментарии уже в отсортированной последовательности (по новизне). Но почему то так не работает. 

тогда перехвати запрос который присылает новые комменты

S3
На сайте с 29.03.2012
Offline
337
#4
lutskboy #:

тогда перехвати запрос который присылает новые комменты

Не надо там ничего перехватывать, селениум работает не так.

leoworker #:
Я всего один раз получаю комментарии, после нажатия на кнопку "По новизне" и выдержке в 3-5 сек. По идее должно было взять эти комментарии уже в отсортированной последовательности (по новизне). Но почему то так не работает. 

Напиши код. Вообще ты сначал создаешь экземпляр драйвера, который тебе позволяет выполнять какие-то действия на странице, например кликать по кнопкам. После этого ты можешь по тегам найти нужный тебе элемент ДОМа и забрать оттуда все что нужно. В целом селениум видет ровно тоже, что видишь ты. Исключения - shadow DOM -  там немного сложнее, но тоже решаемо.

lutskboy
На сайте с 22.11.2013
Offline
183
#5
Sly32 #:
селениум работает не так.

можно и так. ето не сложно

S3
На сайте с 29.03.2012
Offline
337
#6
lutskboy #:

можно и так. ето не сложно

Естественно - это удобный и понятный инструмент для тестирования и скрапинга. Ты работал с ним? Тогда должен понимать что такое webdriver и что он делает. 

lutskboy
На сайте с 22.11.2013
Offline
183
#7
Sly32 #:

Естественно - это удобный и понятный инструмент для тестирования и скрапинга. Ты работал с ним? Тогда должен понимать что такое webdriver и что он делает. 

я юзаю его на nodejs. очень часто выручал меня

S3
На сайте с 29.03.2012
Offline
337
#8
lutskboy #:

я юзаю его на nodejs. очень часто выручал меня

Ну значит вопрос ТСа тебя должен был удивить, ведь это первая задача, которая решается с помощью селениума.

leoworker
На сайте с 25.02.2019
Offline
47
#9
lutskboy #:

тогда перехвати запрос который присылает новые комменты

Да, то что надо. Работает идеально. 👍

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий