Как нажать на сгенерированную динамически кнопку, используя pyppeteer / puppeteer? - PullRequest
1 голос
/ 26 апреля 2020

Я использую Python безголовую библиотеку браузера Pyppeteer. Это в основном так же, как Puppeteer (JS). Поэтому решения, которые работают на Puppeteer, должны работать и здесь. Мне нужна кнопка для нажатия. Проблема в том, что эта кнопка генерируется динамически, и ее идентификатор меняется каждый раз:

Кнопка

<button type="submit" class="btn btn-secondary" id="single_button5ea4a114318a96" title="">Upgrade Moodle database now</button>

Код

   async def configure(self):
   browser = await launch()
   page = await browser.newPage()
   await page.goto('mysite.example')
   await asyncio.gather(
   page.waitForSelector('button[title="Upgrade Moodle database now"]', timeout=60000),
   page.click('button[title="Upgrade Moodle database now"]')
   )

Я мог найти эту кнопку из этой части ее имя, которое не изменяется single_button, но есть еще 3 кнопки, которые начинаются с single_button

Другие кнопки на странице:

<button type="submit" class="btn btn-secondary" id="single_button5ea4a114318a95" title="">Cancel new installations (2)</button>
<button type="submit" class="btn btn-secondary" id="single_button5ea4a114318a93" title="">Cancel this installation</button>
<button type="submit" class="btn btn-secondary" id="single_button5ea4a114318a94" title="">Cancel this installation</button>

Две вещи, которые делают Эта кнопка уникальна по своему последнему номеру и названию. Было бы полезно, если бы вы помогли мне нажать эту кнопку по названию.

Спасибо, ребята!

1 Ответ

0 голосов
/ 30 апреля 2020

Получить более полный CSS селектор. Это можно сделать в Firefox Dev Tools, щелкнув правой кнопкой мыши элемент> copy> CSS Selector

...