1、什么是隐藏元素???
前端通过一些属性来控制元素隐藏
- type = “hidden”
- style = “display:none”
- margin设为负值
- z_index控制元素堆叠顺序
2、定位隐藏元素
定位隐藏元素与定位普通元素没什么区别
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("url地址")
# 定位type="hidden"的隐藏元素
a = driver.find_element_by_id("jn")
print("元素信息: %s" % a)
# 获取元素属性
b = a.get_attribute("name")
# 判断元素是否隐藏
c = a.is_displayed()
3、操作隐藏元素
隐藏元素可以正常定位,只是不能操作。操作元素是click、send_keys、clear这些操作
操作隐藏元素会抛出异常
'ElementNotVisibleExceptin':
Nessage:Element is not currently visible and so may not be interacted with
selenium是无法操作隐藏元素的,本身设计如此。如果想要操作隐藏元素,可以用js的方法。selenium提供了一个入口可以执行js脚本
JS操作隐藏元素
js和selenium不同,只要页面上有的元素,即在dom树中的元素,都能正常的操作
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("url地址")
# js点击hidden元素
js = 'document.getElementById("id名称").click()'
driver.execute_script(js)