Как изменить активный чат в веб-whatsapp через selenium или javascript с помощью Python 3

Я рулевой веб-whatsapp через selenium через Python, мне было интересно, можно ли изменить активный (верхний чат. Если сообщение получено, чат не будет установлен как активный, он всегда будет оставаться в фоновом режиме.

в Javascript можно увидеть список всех чатов в консолях через:

Store.chat.models

активный чат хранится в нулевой позиции, однако перезапись нулевой позиции другим чатом не сделает чат активным.

Я выяснилось, что существует переменная под названием"x_active", который изменяется, если щелкнуть чат и посмотреть на true (и все остальные имеют его как false).

например:

Store.Chat.models[0].__x_active

однако установка переменной или true или false на вкладке консоли chrome ничего не изменила в пользовательском интерфейсе, так как я могу добиться такого поведения?

3 ответов


в whatsapp web, если вы проверяете, Вы можете увидеть, что имя контакта находится в div с классом '.чат'.

вы можете добавить прослушиватель контактов в левой части в whatsapp web, выполнив следующий скрипт в вашем whatsapp_login


вам нужно будет использовать selenium, чтобы нажать на контакт в левой панели, чтобы сделать его активным. Вы можете легко найти место, чтобы нажать с помощью селектора CSS, как это:

driver.find_element_by_css_selector('span[title="Contact Name"]').click()

чтобы легко определить, какие контакты имеют непрочитанные сообщения, Вы можете использовать свой магазин JavaScript.беседа.список моделей, и найти объекты в списке с переменной __x_hasUnread = True, и значение переменной_ _ x _ formattedTitle, чтобы найти имя контакта, чтобы использовать для поиска выше.


однако установка переменной или true или false на вкладке консоли chrome ничего не изменила в пользовательском интерфейсе

вы меняете логическое значение, но запрос не отправляется, в результате вы не увидите никаких изменений. Мое предложение-сначала нажать на веб-элемент, используя Xpath или CSS или любые другие удобные методы локатора.