一、html显示与隐藏元素的几种方法
1、display
- none:隐藏元素
- block:显示为块级元素
<p style='display:none;'>B元素</p>
display: none 隐藏自身元素以及它的所有后代元素 ,隐藏后的元素不占据任何空间,不影响页面布局。
2、visibility
- hidden:隐藏
- visible:显示
<p style='visibility:hidden;'>B元素</p>
visibility: hidden 隐藏自身元素,但隐藏后的元素空间依旧保留,仍然会影响页面布局。
二、如何判断元素是否为隐藏
1、is_displayed()
使用is_displayed()方法查看这个元素,发现返回的是False,说明该元素不可见。
driver.find_element_by_xpath("").is_displayed()
2、在浏览器中查看元素,检查display和visibility的属性值,如:
三、如何操作隐藏元素
①先定位到该元素;
②使用js语句修改属性,将隐藏属性修改为显示。
PS:隐藏元素是仍可定位的,只是操作稍微复杂些。
js = 'document.querySelectorAll("select")[0].style.display="block";' driver.execute_script(js) js = "document.getElementsByClassName('')[0].style.display='block'"
driver.execute_script(js) js = 'document.querySelectorAll("select")[0].style.display="block";' driver.execute_script(js) js = "document.querySelector('ul.sub-link li:nth-child(2)').click()" driver.execute_script(js)
四、如何想富文本编辑器输入内容?
最近在做项目的web后台自动化时,遇到富文本编辑器(php框架自带),通过以下方式,成功定位到该编辑器并输入内容:
(1)首先定位到最外面的iframe框架
(2)进入iframe框架
(3)定位输入框写入内容
(4)退出该iframe框架
先定位外层的元素,由外至内。
class A(): iframe = pmanage.get_iframe # 定位该iframe框架 base.switch_to_iframe(iframe) # 切换进入该iframe ecomon.get_name.send_keys("四大名著") # 写入内容 base.switch_to_parent() # 返回父目录
附:
1、JS查找HTML元素的常用方法
(1)通过id查找HTML元素
document.getElementById(“some id”);
(2)通过标签名查找HTML元素
document.getElementsByTagName(“some tageName”);
(3)通过类名查找HTML元素
document.getElementsByClassName(“some className”);
(4)通过css选择器查找HTML元素
document.querySelector(“css表达式”);
2、JS操作HTML元素的常用方法
(1)点击操作click()
document.getElementById(“some id”).click()
(2)获取元素文本信息textContent
document.getElementById(“some id”).textContent
(3)改变某个元素的属性值
document.getElementById(“some id”).attribute=new value;
可以通过浏览器的控制台验证JS
参考:https://blog.csdn.net/weixin_44169484/article/details/106173602
参考:https://blog.csdn.net/qq_21046965/article/details/83792660