Я получил список «элементов списка» в виде массива ElementHandle, и теперь я хочу щелкнуть по ним отдельно (чтобы загрузить дополнительные данные на той же странице без перехода на другую страницу), а затем нажать на другую кнопку. который загружается после того, как я нажимаю на элемент списка.
Это то, чего я достиг до сих пор:
// get list of all li's
let handles = await page.$$('div.listMiddle > div > div > ul > li');
for (let handle of handles) {
// get content of that li's
let text = await page.evaluate(element => element.textContent, handle);
// if they contains some specific string then click on them
if (text.includes('something here')) {
await handle.click();
// this is where I am stucked at
}
}
Так что я отметил место, где я застрял, с комментарием к выше код. После нажатия на элемент списка, я хочу дождаться загрузки данных и затем нажать на кнопку, которая была недавно загружена. Эта кнопка будет перемещаться на новую страницу, но я собираюсь сделать это несколько раз. Это означает, что мне нужно go вернуться назад и снова щелкнуть другой элемент списка, а затем снова нажать кнопку, после чего он перейдет на другую страницу, что-то сделает на этой странице и затем вернется ...
Идет как это для всех элементов списка. Но не существует метода wait
для этого объекта дескриптора, который имеет тип ElementHandle
. Так как я могу это сделать? (Кстати, я пишу машинописным шрифтом, если это важно, но я думаю, что нет)
Редактировать: Если вопрос слишком сложный, просто ответьте на него; после await handle.click()
, как я могу получить ответ этого клика в виде страницы или элемента?