Selenium操作隐藏的元素

有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了。例如,下面的情况:

页面主要通过“display:none”来控制整个下拉框不可见。这个时候如果直接操作这个下拉框,就会提示:

from selenium import webdriver
from selenium.webdriver.support.select import Select
import os,time

driver = webdriver.Chrome()
file_path = ‘file:///‘ + os.path.abspath(‘test.html‘)
driver.get(file_path)

sel = driver.find_element_by_tag_name(‘select‘)
Select(sel).select_by_value(‘opel‘)
time.sleep(2)

driver.quit()

exceptions.ElementNotVisibleException: Message: element not visible: Element is not currently visible and may not be manipulated

我们需要通过javaScript修改display的值。

……

js = ‘document.querySelectorAll("select")[0].style.display="block";‘
driver.execute_script(js)

sel = driver.find_element_by_tag_name(‘select‘)
Select(sel).select_by_value(‘opel‘)

……

document.querySelectorAll("select")[0].style.display="block";

  document.querySelectorAll("select")  选择所有的select。

  [0] 指定这一组标签里的第几个。

  style.display="block";  修改样式的display="block" ,表示可见。

  执行完这句js代码后,就可以正常操作下拉框了。

原文地址:https://www.cnblogs.com/fighter007/p/8454562.html

时间: 2024-10-04 04:09:11

Selenium操作隐藏的元素的相关文章

Selenium Webdriver——操作隐藏的元素

有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框,就会提示: from selenium import webdriver from selenium.webdriver.support.select import Select import os,time driver = webdriver.Chrome() file_path = 'file

Selenium Webdriver——操作隐藏的元素(四)

页面上弹出的对话框是自动化测试经常会遇到的一个问题:很多情况下对话框是一个iframe,如上一节中介绍的例子,处理起来稍微有点麻烦:但现在很多前端框架的对话框是div 形式的,这就让我们的处理变得十分简单. 上图为百度首页的登录对话框,下面通过脚本对百度进行登录操作: #coding=utf-8from selenium import webdriverdriver = webdriver.Firefox()driver.get("http://www.baidu.com/")#点击登

ui自动化之selenium操作(五)简单元素操作--续

1. 多窗口切换 有时候需要在多窗口切换,webdriver提供了switch_to_window()方法支持切换窗口: from selenium import webdriver import os,time driver = webdriver.Chrome() frist_url = "http://www.baidu.com" driver.get(frist_url) #获取百度登录窗口句柄 login_windows = driver.current_window_han

记录selenium操作

# -*- coding: utf-8 -*- # coding:utf-8 必须在第一行才能支持中文注释 #!/usr/bin/python # android-build.py # Build android from selenium import webdriver import io import sys import time # Keys 是用作关键词输入 from selenium.webdriver.common.keys import Keys #键盘操作 from sele

Selenium webdriver 学习总结-元素定位

Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要高些,使用id,name属性定位元素是最可靠,效率最高的一种办法. 1.工具选择:在我们开发测试脚本的过程中各个浏览器给我们也提供了方便定位元素的工具,我比较喜欢使用firefox的firebug工具,也是目前很多开发测试人员比较热衷的选择,原因是firefox是唯一能够集成selenium IDE

[小北De编程手记] : Lesson 03 - Selenium For C# 之 元素定位

无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.这一篇我们就开始给大家介绍一下Selenium中是如何定位DOM元素的.本文将会介绍如下内容: Selenium DOM 主要的定位方式. Selenium 如何扩展元素定位方式. 辅助浏览器工具 (一)Selenium DOM主要定位方式 上一篇中,我们介绍了WebDriver 和 We

CSS 隐藏页面元素的 几 种方法总结

用 CSS 隐藏页面元素有许多种方法.你可以将 opacity 设为 0.将 visibility 设为 hidden.将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域. 你有没有想过,为什么我们要有这么多技术来隐藏元素,而它们看起来都实现的是同样的效果?每一种方法实际上与其他方法之间都有一些细微的不同,这些不同决定了在一个特定的场合下使用哪一个方法.我们只需要记住的细小不同点,根据不同情况选择上面这些方法中适合的方法来隐藏元素. d

selenium+python自动化之元素定位

自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. 万物皆对象,所谓的对象,就是你喜欢的那个女神,她就是你的对象.既然是对象,她就有属性,比如眼睛大,头发长,皮肤白,颜值高.这些都是她的属性,每个属性又有对应的属性值,如眼睛="大",头发="长",颜值="高",对应的=后面就是它的属性的值. 同样的道

用 CSS 隐藏页面元素

用 CSS 隐藏页面元素有许多种方法.你可以将 opacity 设为 0 将 visibility 设为 hidden 将 display 设为 none 将 position 设为 absolute 然后将位置设到不可见区域. Opacity,占据网页布局,可以交互,读屏软件可以读到它  opacity 属性的意思是设置一个元素的透明度.它不是为改变元素的边界框(bounding box)而设计的.这意味着将 opacity 设为 0 只能从视觉上隐藏元素.而元素本身依然占据它自己的位置并对网