博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium.common.exceptions.StaleElementReferenceException 报错原因
阅读量:5220 次
发布时间:2019-06-14

本文共 1212 字,大约阅读时间需要 4 分钟。

原因是点击第二个时已经是新页面,找不到之前页面的元素

 

报错代码段

elem_pic = driver.find_elements_by_xpath("//div[@class='imgpage']/ul/li/div/a/img")for i in elem_pic:    elem_url = i.get_attribute("src")    driver.get(elem_url)    urlretrieve(elem_url,"m"+str(c)+".jpg")

报错:

selenium.common.exceptions.StaleElementReferenceException: Message: {
"errorMessage":"Element does not exist in cache","request":{
"headers":{
"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:50811","User-Agent":"Python http auth"},"httpVersion":"1.1","method":"GET","url":"/attribute/src","urlParsed":{
"anchor":"","query":"","file":"src","directory":"/attribute/","path":"/attribute/src","relative":"/attribute/src","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/attribute/src","queryKey":{},"chunks":["attribute","src"]},"urlOriginal":"/session/e23a6270-ad9c-11e7-9d81-eb604b74f70b/element/:wdc:1507627515312/attribute/src"}}

 

只要刷新页面之后重新获取元素就行,不要提前获取一组元素,然后去循环操作每一个元素,这种情况还是获取元素的个数,然后在循环中获取相应位置的元素,在用的时候才去获取

遇到页面有变化的情况,不要去循环元素,去循环个数或者定位方式,在循环中获取元素

转载于:https://www.cnblogs.com/AbsolutelyPerfect/p/7647158.html

你可能感兴趣的文章
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>