selenium---操做隐藏元素

  前面介绍了如何判断元素是否可见,了解到了隐藏元素的属性值,以及如何判断隐藏元素,那么今天安静介绍下如何操做隐藏元素。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

 

感谢你们的阅读,若是您喜欢安静的做品,能够点个关注,持续更新。

相关文章
相关标签/搜索