python+selenium:解决上传文件<input type='file'>标签属性被css的visibility隐藏导致无法定位元素的问题

摘要:
要想上传文件,需要找到在HTML中这个标签,有它就可以利用send_keys上传文件,不过这里的元素被隐藏了,导致一直定位不到inputhtml代码如下,注意visibility:hidden,表示这个input元素被隐藏了,要想定位它必须先把隐藏属性去掉一般控制元素显示或隐藏是用display属性来实现的style.display=“none”

要想上传文件,需要找到在HTML中<inputtype="file" />这个标签,有它就可以利用send_keys上传文件,不过这里的<input>元素被隐藏了,导致一直定位不到input

html代码如下,注意visibility:hidden,表示这个input元素被隐藏了,要想定位它必须先把隐藏属性去掉

python+selenium:解决上传文件&lt;input type='file'&gt;标签属性被css的visibility隐藏导致无法定位元素的问题第1张

一般控制元素显示或隐藏是用display属性来实现的

style.display = “none”,表示元素隐藏;
style.display = “block”,  表示显示

但是这里不是用的display属性,而是使用的css的visibility属性来实现的,

style.visibility="hidden",表示元素隐藏;
style.visibility="visible",表示元素显示;

于是利用js来去掉隐藏属性,开始想只把visibility属性改为visible,但是一直失败,后来干脆把整个style属性去掉不就好了,反正目的只是想把上传文件的属性变为可见,js代码如下

js = 'document.querySelector("#i_select_files>input").style="";'  #js去掉上传文件“input”元素的属性,使之可见
driver.execute_script(js)

去掉隐藏后,效果如下,可以看到出现一个【选择文件】的按钮

python+selenium:解决上传文件&lt;input type='file'&gt;标签属性被css的visibility隐藏导致无法定位元素的问题第2张

免责声明:文章转载自《python+selenium:解决上传文件&amp;lt;input type='file'&amp;gt;标签属性被css的visibility隐藏导致无法定位元素的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Node 之URL模块RSA加密原理使用方式签名验证下篇

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

相关文章

python调用摄像头拍照并保存

import cv2 import os #引入库 print("=============================================") print("= 热键(请在摄像头的窗口使用): =") print("= z: 更改存储目录 =") print...

input输入框,在手机上,软键盘会将固定定位和绝对定位的按钮顶起,解决办法

原理:通过监听window窗口的高度变化,来控制显示和隐藏按钮 注意:如果是点击键盘上的收起,可以监听到,但是如果是因为input失去焦点,则不会监听到窗口变化,所以我们需要同时判断input失去焦点 html <input type="text" class="input"...

input相关事件

1.onfocus  当input 获取到焦点时触发 2.onblur  当input失去焦点时触发,注意:这个事件触发的前提是已经获取了焦点再失去焦点的时候会触发相应的js 3.onchange 当input失去焦点并且它的value值发生变化时触发 4.onkeydown 在 input中有键按住的时候执行一些代码 5.onkeyup 在input中有...

selenium---上传文件(非input标签)

前言   在前面介绍过selenium中的上传操作过程中介绍了,上传分为两种一种为input标签的,另一种为非input标签的,input标签的直接通过send_keys直接将需要上传的文件地址输入即可 非input标签上传 安静这里找到了一个关于非input标签的上传实例,然后通过pywinauto这个第三方库控制Windows控件进行完成上传操作 p...

菜鸟python---格式化

"""-----------info----------姓名:年龄:公司:电话:------------end-----------"""name = input("name:")age = input("age:")addr = input("addr:")phone = input("phone:")a = "-----------info------...

input框输入金额处理的解决办法

最近已经上线的项目突然出现了input输入金额删除时出现问题,网上各种搜索都没有搜到想要的,今天就以react框架为例子进行代码奉献,我会把需求及解决方法写出来,希望对朋友们有用。 如有更好地实现方式欢迎指点! 一、需求 1、只允许输入数字 2、只允许输入一个小数点,且小数点只能有一个,后面最多可输两位小数 3、金额转成大写 4、控制金额输入的位数 二、实...