Selenium操作隐藏的元素及问题解决方案

 更新时间:2023年12月27日 09:59:51   作者:weixin_41812355  
这篇文章主要介绍了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监测网络接口获取网络的输入输出

    这篇文章主要介绍了linux系统使用python监测网络接口获取网络的输入输出信息,大家参考使用吧
    2014-01-01
  • Pytorch复现扩散模型的示例详解

    Pytorch复现扩散模型的示例详解

    这篇文章主要为大家详细介绍了如何利用Pytorch复现扩散模型,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以跟随小编一起了解一下
    2023-04-04
  • Python设计模式中的结构型桥接模式

    Python设计模式中的结构型桥接模式

    这篇文章主要介绍了Python设计模式中的结构型桥接模式,桥接模式即Bridge Pattern,将抽象部分与它的实现部分分离,使它们都可以独立地变化.下面来看看文章的详细内容介绍吧
    2022-02-02
  • Python如何实现的二分查找算法

    Python如何实现的二分查找算法

    在本篇文章里小编给大家分享的是一篇关于Python实现的二分查找算法实例讲解内容,需要的朋友们可以学习下。
    2020-05-05
  • Python简单计算数组元素平均值的方法示例

    Python简单计算数组元素平均值的方法示例

    这篇文章主要介绍了Python简单计算数组元素平均值的方法,涉及Python简单数组遍历与数学运算相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • 使用Python实现压缩pptx的功能

    使用Python实现压缩pptx的功能

    当处理大型PPTX文件时,其中包含许多高分辨率照片时,文件大小可能会显著增加,为了解决这个问题,我们可以使用Python编程语言和python-pptx库来压缩PPTX文件中的照片,下面我们就来看看具体操作吧
    2024-02-02
  • 详解Python如何利用pymysql封装项目通用的连接和查询

    详解Python如何利用pymysql封装项目通用的连接和查询

    一个项目通常都需要有数据库,本文就来为大家详细讲讲Python如何利用pymysql简单分装一个通用的连接,关闭和查询,需要的可以参考一下
    2022-07-07
  • 深入理解Pytorch中的torch. matmul()

    深入理解Pytorch中的torch. matmul()

    这篇文章主要介绍了Pytorch中的torch. matmul()的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 利用Python实现端口扫描器的全过程

    利用Python实现端口扫描器的全过程

    这篇文章主要给大家介绍了关于如何利用Python实现端口扫描器的相关资料,用来检测目标服务器上有哪些端口开放,本文适用于有 Python和计算机网络语言基础的用户,需要的朋友可以参考下
    2021-08-08
  • 关于Python作用域自学总结

    关于Python作用域自学总结

    在本文里我们给大家整理了关于python自学作用域的相关知识点以及实例代码,需要的朋友们跟着学习下。
    2019-06-06

最新评论