python之selenium操作隐藏元素

摘要:
FasttralateIcontranslate getElementsByTagName getElementsByTagName FasttralateI Contranslate I.html显示和隐藏元素的几种方法1.displaynone:隐藏元素block:显示为块级元素<pstyle='显示:无;'>B元素&lt/p>显示:无

 
 
Fast traslate
Icon translate

 
 
getElementsByTagName
 
GetElementsByTagName
Fast traslate
Icon translate

一、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的属性值,如:

python之selenium操作隐藏元素第1张

三、如何操作隐藏元素

①先定位到该元素;
②使用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

免责声明:文章转载自《python之selenium操作隐藏元素》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇bat调用带参数存储过程小程序开发-小程序页面间传递数据的方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[Python笔记]元组

元组(tuple): tuplename = (element1, element2, element3...)  元组是不可变序列,其实就是不可变的列表。 通常情况下,元组用于保存程序中不可修改的内容。 一般情况下,一组小括号内的数据称为元组,不过小括号不是必需的,只要将一组数值用逗号分开,Python均可将其视作为元组 >>> tur...

[AngularJS]项目框架搭建-MyFirst Skeleton

前文有提到过 做一个简单的订餐系统,最近花了点时间,了解了一下AngularJS框架的使用。因此本文的目的根据了解的知识重新搭建基于 AngularJS框架. 该框架是基于对于AngularJS的学习而制定的,这其中肯定有很多不足,在以后的学习中在加以改进。 一。系统准备 安装Node.js version>=0.10.0版本 Git Shell 并...

js、jq对象互转

1.js对象转jq对象:    $() $('#kw') $(document.getElementById("kw")) 2.jq对象转js对象: $(this).get(0) 、$(this)[0] $('#kw').get(0) $('#kw').[0] 3.封装自己的‘jq’ 思路: 依据现有api(当然那要考虑各种兼容性)、 定义输入与输出(包括...

js批量下载文件

​关于兼容性问题:  <a href="http://t.zoukankan.com/xxx.docx" target='_blank'></a>  下载文件时,这种写法是没有兼容性问题;但是下载图片时,IE 上会出现当前页面直接打开图片的问题,即便是加了 target='_blank'。单个文件批量下载方法一:H5 <a&g...

python用sqlite3模块操作sqlite数据库-乾颐堂

SQLite是一个包含在C库中的轻量级数据库。它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库。 一些应用可是使用SQLite保存内部数据。它也可以在构建应用原型的时候使用,以便于以后转移到更大型的数据库。 SQLite的主要优点: 1. 一致性的文件格式: 在SQLite的官方文档中是...

python下编译py成pyc和pyo

其实很简单,用python -m py_compile file.py python -m py_compile /root/src/{file1,file2}.py编译成pyc文件。也可以写份脚本来做这事:Code: import py_compile py_compile.compile('path') //path是包括.py文件名的路径 用py...