#javascript #puppeteer
#javascript #кукловод
Вопрос:
Я пытаюсь щелкнуть 3 точки в gmail здесь: 1
А затем нажмите «пометить все как прочитанное»: 2
Я нажимаю на 3 точки нормально.
Однако я не могу щелкнуть пометить все как прочитанное.
Я могу выбрать его при проверке элемента с помощью: div[class="J-M aX0 aYO jQjAxd"] > div[class="SK AX"] > div[class="J-N"]:nth-child(1)
Однако я не могу щелкнуть его
Я пробовал:
- Обычный. щелкните селектор
- . затем сфокусируйтесь. щелкните селектор
- наведя курсор мыши на селектор, затем щелкнув, где находится мышь
- жесткое ожидание перед нажатием
- разные селекторы
- и т. д
var selector = 'span[class="asa bjy"]' await cursor.move(selector) await cursor.click() await page.waitForNavigation({ waitUntil: "networkidle2" })`
Эта предыдущая часть в порядке (использует курсор-призрак), она нажимает на 3 точки. Но следующее не работает
await page.waitFor(1500)
var selector = 'div[class="J-M aX0 aYO jQjAxd"] > div[class="SK AX"] > div[class="J-N"]:nth-child(1)'
await page.waitForSelector(selector);
await page.click(selector);
Приветствуются любые советы. Пожалуйста, дайте мне знать, если мне нужно добавить больше деталей.
Комментарии:
1. Вы могли бы попробовать этот селектор:
#:3v > div
2. Эти рандомизированные селекторы классов и идентификаторов — плохая идея для таргетинга. Вместо этого поищите другие свойства для таргетинга на нужный контейнер. Наконец, метод click не работает с divs; попробуйте создать событие щелчка мыши и отправить его в целевой div.
Ответ №1:
не уверен, что вы пытаетесь сделать, но чтение / запись электронных писем через puppeteer намного медленнее, чем при использовании общедоступного API Gmail: https://developers.google.com/gmail/api . Использование API гарантирует, что ваш код будет выполняться стабильно и не будет прерываться в следующий раз, когда Google обновит какой-либо другой элемент пользовательского интерфейса в своем HTML.