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操作隐藏的元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python常见工厂函数用法示例

    Python常见工厂函数用法示例

    这篇文章主要介绍了Python常见工厂函数用法,简单描述了工厂函数的功能、定义并结合具体实例形式分析了Python常见工厂函数的相关使用技巧,需要的朋友可以参考下
    2018-03-03
  • python批量生成本地ip地址的方法

    python批量生成本地ip地址的方法

    这篇文章主要介绍了python批量生成本地ip地址的方法,实例分析了Python实现生成本地IP地址并绑定到网卡上的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python利用 pytesseract快速识别提取图片中的文字((图片识别)

    python利用 pytesseract快速识别提取图片中的文字((图片识别)

    本文介绍了tesseract的python调用,也就是pytesseract库,其中还有一些其他的内容并没有涉及,仅涉及到了图片提取文字,如果你对其感兴趣,可以深入探索一下,也希望能和我探讨一下
    2022-11-11
  • python 求两个向量的顺时针夹角操作

    python 求两个向量的顺时针夹角操作

    这篇文章主要介绍了python 求两个向量的顺时针夹角操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 对json字符串与python字符串的不同之处详解

    对json字符串与python字符串的不同之处详解

    今天小编就为大家分享一篇对json字符串与python字符串的不同之处详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python使用tcp传输图片数据

    python使用tcp传输图片数据

    这篇文章主要为大家详细介绍了python使用tcp传输图片数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Python中list列表的一些进阶使用方法介绍

    Python中list列表的一些进阶使用方法介绍

    这篇文章主要介绍了Python中list列表的一些进阶使用方法介绍,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • Qt实现炫酷启动图动态进度条效果

    Qt实现炫酷启动图动态进度条效果

    最近接到一个新需求,让做一个动效进度条。刚接手这个项目真的不知所措,后来慢慢理清思路,问题迎刃而解,下面小编通过本文给大家带来了Qt实现炫酷启动图动态进度条效果,感兴趣的朋友一起看看吧
    2021-11-11
  • Python连接SQLServer2000的方法详解

    Python连接SQLServer2000的方法详解

    这篇文章主要介绍了Python连接SQLServer2000的方法,结合实例形式分析了Python实现数据库连接过程中所遇到的常见问题与相关注意事项,需要的朋友可以参考下
    2017-04-04
  • Pycharm 创建 Django admin 用户名和密码的实例

    Pycharm 创建 Django admin 用户名和密码的实例

    今天小编就为大家分享一篇Pycharm 创建 Django admin 用户名和密码的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论