总是 IndexError: list index out of range

总是 IndexError: list index out of range

问题描述:

代码是这样的

sum=len(browser.find_elements_by_xpath('//span[@class="articlename"]/a'))
for i in range(0,sum):
    link=browser.find_elements_by_xpath('//span[@class="articlename"]/a')
    link[i].click()
    browser.back()

列表中索引越界了


for i in browser.find_elements_by_xpath('//span[@class="articlename"]/a'):
    i.click()
    browser.back()

我猜是 link[i].click() 这一行报的错
更准确是的ink[i]

find_elements定位失败是会返回空列表,所以,这个问题的关键在于:
每一次定位之后,都检查返回列表的长度,确认定位成功再点击

sum=len(browser.find_elements_by_xpath('//span[@class="articlename"]/a'))
for i in range(0,sum):
    link=browser.find_elements_by_xpath('//span[@class="articlename"]/a')
    if link!= sum:          # 先检查,再使用
        print("定位出错")
        break
    link[i].click()
    browser.back()