常见错误原因
常见错误原因
其他错误原因
场景
使用selenium循环打开并跳转到新的网页,然后关闭新的窗口,然后回到原来窗口,这时候获取list中的值,报错: list index out of range。
原因
由于打开新的窗口,导致list中的值过期了,这时候你通过 item = list[0]进行取值的话就会报这个错误,这时候你打印一下list,就会打印出来空数组
解决
循环的时候不再循环这个获取到的dom元素list,而是循环这个list的长度,然后每次循环开始的时候都获取一下这个list,在for循环中就可以获取元素,不会报错了
list = browser.find_elements_by_link_text(<span>"</span><span>开始学习</span><span>"</span><span>) length </span>=<span> len(list) </span><span>print</span>(f<span>"</span><span>循环开始前============len(list):{len(list)}</span><span>"</span><span>) </span><span>print</span>(f<span>"</span><span>循环开始前-----------len(list):{length}</span><span>"</span><span>) </span><span>for</span> i <span>in</span><span> range(length): list </span>= browser.find_elements_by_link_text(<span>"</span><span>开始学习</span><span>"</span><span>) </span><span>print</span>(f<span>"</span><span>循环中============list:{list}</span><span>"</span><span>) </span><span>print</span>(f<span>"</span><span>循环中============len(list):{len(list)}</span><span>"</span><span>) </span><span>print</span>(f<span>"</span><span>i:{i},range(length):{range(length)}</span><span>"</span><span>) element </span>=<span> list[i] </span><span>print</span>(<span>"</span><span>element.click执行前</span><span>"</span><span>) element.click()</span>
www#gaodaima.com来源gaodai#ma#com搞*代#码网搞代码