前面介绍了如何判断元素是否可见,了解到了隐藏元素的属性值,以及如何判断隐藏元素,那么今天安静介绍下如何操做隐藏元素。javascript
安静先带你们回顾下隐藏元素是什么,隐藏元素是经过属性值 hidden="hidden" 进行隐藏,若是前端代码中出现这个,就表明该元素已经被隐藏了,你们也知道,若是元素隐藏了,是没有办法进行操做的,所谓的操做就是输入,点击,以及清空这些基本元素操做。若是经过selenium中的点击进行操做元素的话,会报错误,没有找到元素信息,前面也介绍了,隐藏的元素只能定位到,可是没有办法进行操做。具体的详情见selenium---判断元素是否可见。今天安静介绍一个小小的方法来帮助咱们进行操做这些元素html
你们也都知道selenium操做方法是经过模拟人的操做方法进行的,那么元素都看不到了,就没有所谓的操做不操做了,若是真的想要操做,咱们可使用JS语法进行操做(selenium---经过JS语法操做页面元素),由于JS语法属于直接对前端的代码进行操做,代码是在的,隐藏元素主要是对于前端页面来讲是不可见的。前端
这里安静那上次的代码进行添加了隐藏的按钮,点击这个隐藏按钮会出现一个弹出框。经过下面的代码能够看出,用户名和按钮是经过hidden属性进行隐藏的。java
<html> <body> <center> 用户名:<br> <input hidden="hidden" type="text" name="username" id="anjing"> <br> 密码:<br> <input type="text" name="pwd" id="test"> <br><br> <input type="submit" value="登陆"> </form> <p>点击登陆,进行提交</p> <script type="text/javascript"> function display_alert() { alert("请关注 测试-安静!") } </script> </head> <body> <input hidden="hidden" id="anjing_test" type="button" onclick="display_alert()" value="隐藏按钮" /> </body> </html>
咱们能够进行经过打开看看前端是什么样子,添加的按钮是否可见web
经过上图能够清楚的看到,用户名的输入框和按钮都是看不到的。咱们经过前面介绍的JS语法方法进行完成点击操做面试
from selenium import webdriver import time driver = webdriver.Chrome() driver.get(r'E:/web/123.html') # JS语法 js = "document.getElementById('anjing_test').click()" time.sleep(3) # 点击操做 driver.execute_script(js)
经过展现的动图能够看到,咱们已经完成了成功点击隐藏按钮。post
你们都知道,隐藏元素是没法看到的,那么输入的操做内容确定是看不到结果的,就算咱们完成了输入,同样看不到结果。不过若是咱们先进行输入,而后经过js把隐藏的属性进行删除,那么咱们就能看到是否成功输入了。继续使用前面的代码段,而后进行编写代码测试
from selenium import webdriver import time driver = webdriver.Chrome() driver.get(r'E:/web/123.html') time.sleep(1) # JS语法输入内容 js = "document.getElementById('anjing').value='anjing'" # 执行隐藏用户名进行输入 driver.execute_script(js) time.sleep(3) # JS语法删除hidden属性 js2 = 'document.getElementById("anjing").removeAttribute("hidden")' # 执行JS语法 driver.execute_script(js2)
经过上面的动图能够看到,等到输入框出现的那一瞬间,咱们刚才的输入也成功的显示出来了。url
这个可能在工做过程当中用到的极少,可是面试的时候缺问的不少,好比:如何操做隐藏的元素。那么此次就能够义正词严的告诉面试官,能够经过JS语法进行强制性操做。spa
感谢你们的阅读,若是您喜欢安静的做品,能够点个关注,持续更新。