Selenium показывает несвоевременную ошибку, когда я пытаюсь нажать на всю ссылку, используя для l oop? - PullRequest
0 голосов
/ 06 апреля 2020

all_divs содержит все ссылки, которые я получил. Мне нужно щелкнуть все из них, но когда я пытаюсь это сделать, selenum выдает устаревшую ошибку, говоря

"selenium.common.exceptions.StaleElementReferenceException: Message: ссылка на элемент устарела; либо элемент является больше не подключен к DOM, не находится в текущем контексте фрейма или документ обновлен "

link_div = driver.find_elements_by_css_selector("div[id='sidebar1269']")[0]


        all_divs  = link_div.find_elements_by_css_selector("div>a:last-of-type")

        print(all_divs[0])

        for i in all_divs:
            i.click()

1 Ответ

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

Не зная html, который, возможно, даст более эффективный ответ, это должно дать вам то, что вы хотите. После нажатия на ссылку домен, скорее всего, будет обновлен / изменен, поэтому вам нужно будет повторно найти элементы, прежде чем щелкнуть.

link_div = driver.find_elements_by_css_selector("div[id='sidebar1269']")[0]

number_of_divs  = len(link_div.find_elements_by_css_selector("div>a:last-of-type"))

for i in range(number_of_divs):
    link_div = driver.find_elements_by_css_selector("div[id='sidebar1269']")[0]
    link_div.find_elements_by_css_selector("div>a:last-of-type")[i].click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...