动态加载的解决办法
小白学习中~ 记录下遇到问题解决的方法
关于文章末尾提到的问题,文章开头讲的内容就是解决办法。
总结来说就是先消除该下拉框的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)
下拉框元素动态加载的问题 👇
今天在一个系统中定位元素,上面是一个点击框,点击之后会出现可以选择的下拉框
如图:
但是在开发者选项中无法定位到这里的元素,看了下源码,源码中并没有这些选项
点击其中有的选项之后,才会出现对应的代码
请问有大佬可以告诉我下这是为什么吗?