Обнаружение автоматически открытых вкладок с помощью Pyppeteer - PullRequest
0 голосов
/ 18 января 2019

С помощью pyppeteer можно получить все открытые вкладки с помощью функции .pages . Это работает нормально, пока веб-сайт сам не откроет новую вкладку (например, после нажатия на кнопку). В этом случае новая вкладка не отображается в списке возвратов **. Страниц *.

Есть ли способ обнаружить эту новую вкладку, чтобы я мог работать с ней так же, как и с другими вкладками / страницами?

(Я не проверял это с кукловодом, но я думаю, что он будет вести себя так же.)

Пример кода (К сожалению, я должен использовать Python 2.7., Поэтому я должен использовать yield from):

self.browser = yield from launch(appMode=True, closeAtExit=False)
pages = yield from self.browser.pages()
self.page = pages[len(pages) - 1] # Open w3schools in the init tab

yield from self.page.goto("https://www.w3schools.com/tags/att_a_target.asp")
link = yield from self.page.waitForSelector('a.w3-btn:nth-child(4)')
yield from link.click()
yield from asyncio.sleep(5) # Just to give some extra time...
pages1 = yield from self.browser.pages() 
self.log.info("Count: " + str(len(pages1))) # Should be 2 now
for mpage in pages1:
    self.log.info("URL: " + str(mpage.url))

Выход:

TARGETS:  {'246562630E35EEAD0384B80658C827F8': <pyppeteer.target.Target     object at 0x03482F10>}
TARGETS:  {'246562630E35EEAD0384B80658C827F8': <pyppeteer.target.Target object at 0x03482F10>}
INFO:__main__:Count: 1
INFO:__main__:URL: https://www.w3schools.com/tags/att_a_target.asp
INFO:__main__:Done!
...