如何使用Selenium webdriver和Python逐个单击链接

Dmi*_*sev 1 python selenium selenium-webdriver

网站有顶级菜单,有6个链接.我可以得到这样的链接列表:

links = browser.find_elements_by_css_selector(MENU_LINKS_CSS_SELECTOR)
Run Code Online (Sandbox Code Playgroud)

在此之后,我需要逐个单击此链接.如果我这样做:

for link in links:
    link.click()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:selenium.common.exceptions.StaleElementReferenceException: Message: u'Element not found in the cache - perhaps the page has changed since it was looked up'.据我所知,这个错误引起了因为WebElement实例之间的连接和网页的DOM在重新加载页面后被破坏(点击链接).

在这里,我应该注意到所有页面上的顶部菜单都是相同的.

那么,我做错了什么?如何解决这个问题?TIA!

svi*_*eet 5

我不太了解Selenium,但你应该再次选择链接 -

for i in range(0,6):
    links = browser.find_elements_by_css_selector(MENU_LINKS_CSS_SELECTOR)
    links[i].click()
Run Code Online (Sandbox Code Playgroud)