Selenium操作隐藏的元素及问题解决方案
在工作中我们会遇到一些隐藏的元素,那么selenium就会无法操作这些元素了,例如像这样:
我试着像以前操作一样,写了代码,操作之后报错:selenium.common.exceptions.NoSuchElementException: Message: Could not locate element with visible text: male
解决方法:
我们可以通过js来使元素可见,代码如下:
# document.querySelectorAll("select") 选择所有的select。 # [1] 指定这一组标签里的第2个。 # style.display="block"; 修改样式的display="block" ,表示可见。 js = 'document.querySelectorAll("select")[1].style.display="block";' driver.execute_script(js)
再举一个例子,该例子是输入框隐藏了;具体HTML如下:
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>Checkbox</title> <script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="external nofollow" rel="stylesheet" /> <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> </head> <title>定位演示</title> <script> function gettext(){ var url = document.getElementById("urlAdd").value; window.location.href=url; } </script> <body> 请输入网站:<input style="display:none" type="text" id="urlAdd" /> <button οnclick="gettext()" id= "ok" >跳转</button> </body> </html>
python实现方式一:
# 1. 确定js js = "document.getElementById('urlAdd').value = 'https://baike.baidu.com/'" # 2. 执行js driver.execute_script(js) # 点击跳转 driver.find_element_by_id("ok").click() time.sleep(5)
python实现方法二:
# 1. 确定js js = 'document.getElementById("urlAdd").style.display="block";' # 2. 执行js driver.execute_script(js) driver.find_element_by_id("urlAdd").send_keys("https://www.baidu.com") # 点击跳转 driver.find_element_by_id("ok").click() time.sleep(5)
假如面试官问我们如何定位隐藏元素以及如何操作?
回答:定位元素的话,直接用普通的定位方法即可,只是在操作元素上有些差异,需要用js去进行操作。
到此这篇关于Selenium操作隐藏的元素的文章就介绍到这了,更多相关Selenium操作隐藏的元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
linux系统使用python监测网络接口获取网络的输入输出
这篇文章主要介绍了linux系统使用python监测网络接口获取网络的输入输出信息,大家参考使用吧2014-01-01详解Python如何利用pymysql封装项目通用的连接和查询
一个项目通常都需要有数据库,本文就来为大家详细讲讲Python如何利用pymysql简单分装一个通用的连接,关闭和查询,需要的可以参考一下2022-07-07
最新评论