2013-07-22 68 views
1

网站有6个链接的顶级菜单。我能得到这个链接是这样的名单:如何用Selenium webdriver和Python逐个点击链接

links = browser.find_elements_by_css_selector(MENU_LINKS_CSS_SELECTOR) 

这个我需要点击该链接指向一个个后。如果我这样做:

for link in links: 
    link.click() 

我收到以下错误: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!

+1

所以你知道你在收到异常可能是由刷新页面造成的链接被点击。因此,保存的“硒”对列表中下一个链接的引用将不再存在。根据Svineet的回答,每次你想点击下一个链接时,你都需要收集链接列表 - '刷新'每个链接的硒引用。 –

回答

5

我不知道很多硒,但你应该再次选择链接 -

for i in range(0,6): 
    links = browser.find_elements_by_css_selector(MENU_LINKS_CSS_SELECTOR) 
    links[i].click() 
+0

thx很多!这解决了这个问题!:-) – dizpers

+0

coul你标记我的答案是否正确?那就是如果它适合你 – svineet

相关问题