关于selenium定位下拉框中动态加载的元素定位不到或无法定位的问题

本文介绍了在使用Selenium进行UI测试时遇到动态加载下拉框元素无法定位的问题及其解决方案。关键在于下拉框的display属性为none,通过修改元素样式,删除display:none,使下拉框保持可见状态,从而能够成功定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态加载的解决办法

小白学习中~ 记录下遇到问题解决的方法

关于文章末尾提到的问题,文章开头讲的内容就是解决办法。
总结来说就是先消除该下拉框的display=none,然后那些会消失的元素就任由你操作且不会消失了。

前段时间遇到的下拉框动态加载的问题,后来终于找到了如何定位的解决办法:
首先看该下拉框的html代码:

在这里插入图片描述
在我框出来的地方就是问题所在了
这里的 display值是none,所以无论你点击哪里,只要点击的地方不是下拉框,无论之前下拉框的内容是否出现,只要点击了别处,甚至是快捷键检查源码都会消失 ,这就是问题所在。
通过勾选display前面的小框
在这里插入图片描述
当我们去勾选之后,即相当于 删除display: none源码
在这里插入图片描述
此时我们可以看到,这次无论鼠标点击哪里,这个下拉框都不会消失了!任由我们定位!!
那么,该如何修改这里的代码呢?
看我另一个回答,地址在这里:👇

Selenium给元素的属性赋值(修改)

所以我需要将此处的style属性中的display这块代码删除就可以直接展示了。
最后定位的代码:

inputs_selcet = driver.find_elements_by_css_selector(".ant-select")
inputs_selcet[1].click()
meeting_div = driver.find_element_by_xpath\
("//div[@class = 'ant-select-dropdown ant-select-dropdown--multiple ant-select-dropdown-placement-bottomLeft'][1]")
# js代码
js = "arguments[0].style = 'width: 360px;left: 360px;top: 465px;';"
# 执行js修改属性值
driver.execute_script(js, meeting_div)

下拉框元素动态加载的问题 👇

今天在一个系统中定位元素,上面是一个点击框,点击之后会出现可以选择的下拉框
如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

但是在开发者选项中无法定位到这里的元素,看了下源码,源码中并没有这些选项

在这里插入图片描述
点击其中有的选项之后,才会出现对应的代码

在这里插入图片描述
请问有大佬可以告诉我下这是为什么吗?

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值