0

all_divs 包含我得到的所有链接。我需要单击所有这些但是当我尝试这样做时,硒会抛出陈旧的错误说

“selenium.common.exceptions.StaleElementReferenceException:消息:元素引用已过时;要么元素不再附加到 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()
4

1 回答 1

0

在不知道可能给出更有效答案的 html 的情况下,这应该可以满足您的需求。单击链接后,dom 很可能已更新/更改,因此您需要在单击之前重新找到元素。

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()
于 2020-04-06T04:28:34.257 回答