Python selenium提示:element is not attached to the page document错误

博主在做Selenium自动化办公项目时,鼠标事件click()出现错误,循环到第二个链接时提示元素未附着到页面文档。经观察,关闭第一个链接页面会刷新,div元素改变致后续元素找不到。将查找元素语句放循环中,每次循环重新查找,问题解决。
部署运行你感兴趣的模型镜像

最近在做selenium一个自动化办公的项目的时候遇到鼠标事件click()的错误,查找页面元素的时候

div = driver.find_elements_by_xpath('//*[@id="test"]') #查找页面某些元素
for x in range(10):#依次点开前10个链接
	div[x].click()
	driver.switch_to.window(driver.window_handles[2])#切换到点开的页面句柄下进行操作
	#此处省略操作代码
	driver.close()#关闭当前标签页
	driver.switch_to.window(driver.window_handles[1])#切换至初始标签页句柄

如上代码在执行的时候会出现可以点开第一个链接,当循环到第二个链接的时候就会出现element is not attached to the page document的错误。
经过仔细观察,发现关闭第一个链接的时候初始页面会强制刷新一次,因此很有可能是div里的元素变了导致后面找不到该元素,因此我试着把查找元素的语句放在循环当中,即每次循环都重新查找一遍元素,问题解决。解决后代码对比如下:

for x in range(10):#依次点开前10个链接
	div = driver.find_elements_by_xpath('//*[@id="test"]') #把查找元素的语句移到循环内
	div[x].click()
	driver.switch_to.window(driver.window_handles[2])#切换到点开的页面句柄下进行操作
	#此处省略操作代码
	driver.close()#关闭当前标签页
	driver.switch_to.window(driver.window_handles[1])#切换至初始标签页句柄

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值