要想上传文件,需要找到在 html 中 这个标签,有它就可以利用 send_keys 上传文件,不过这里的元素被隐藏了,导致一直定位不到 input
html 代码如下,注意 visibility:hidden,表示这个 input 元素被隐藏了,要想定位它必须先把隐藏属性去掉
一般控制元素显示或隐藏是用 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)
去掉隐藏后,效果如下,可以看到出现一个【选择文件】的按钮
来源: http://www.bubuko.com/infodetail-2452771.html