本文目录一览:
python DOM有什么用
DOM介绍
(1)什么是DOM
·DOM:文档对象模型。DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。
·DOM就是由节点组成的。
相关推荐:《Python教程》
(2)解析过程
·HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM上的元素节点。然后操作的时候修改的是该元素的属性。
·DOM树(一切都是节点)
DOM的数据结构如下:
上图可知,在HTML当中,一切都是节点:(非常重要)
·元素节点:HMTL标签。
·文本节点:标签中的文字(比如标签之间的空格、换行)
·属性节点::标签的属性。
整个html文档就是一个文档节点。所有的节点都是Object。
(3)DOM可以做什么
·找对象(元素节点)
·设置元素的属性值
·设置元素的样式
·动态创建和删除元素
·事件的触发响应:事件源、事件、事件的驱动程序
python+selenium怎么遍历一个网页中class相同的值
获取标签内容
使用element.attribute()方法获取dom元素的内容,如:
dr = driver.find_element_by_id('tooltip')
dr.get_attribute('data-original-title') #获取tooltip的内容
dr.text #获取该链接的text
获取标签属性
link=dr.find_element_by_id('tooltip')
link.value_of_css_property('color') #获取tooltip的CSS属性color的属性值
link.find_element_by_tag_name('h3').value_of_css_property('font') #获取h3的CSS属性font的属性值
获取标签状态
是否显示:使用element.is_displayed()方法
是否存在:使用find_element_by_xxx()方法,捕获其抛出的异常, 如果存在异常的话则可以确定该元素不存在
text_field=dr.find_element_by_name('user').is_enabled()
#直接用element.is_enabled()方法判断button,返回值为true,因为button是使用CSS方法判断是否有效这并不是真正的方法,需要判断其class中是否有值为disabled来判断是否真正处于disabled的状态
dr.find_element_by_class_name('btn').is_enabled()
是否被选中:一般判断表单元素,如radio或checkbox是否被选中,使用element.is_selected()方法
radio.is_selected() #判断是否被选中
try:
dr.find_element_by_id('none')
except:
print 'element does not exist'
是否有效:即是否为灰化状态,使用element.is_enabled()状态
print text_field.is_displayed() #判断是否显示
Python中如何遍历指定目录下的所有文件?
例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。
1. os.walk
os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。
import os
def fun( path ):
... for root, dirs, files in os.walk( path ):
... for fn in files:
... print root, fn
...
fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD a.txt
C:\TDDOWNLOAD b.txt
C:\TDDOWNLOAD\sub1 c.txt
C:\TDDOWNLOAD\sub1 d.txt
2. glob.glob
glob.glob()只接受一个参数,这个参数既代有路径,又代有匹配模式,返回值为一个列表。注意,glob.glob()无法直接穿透子文件夹,需要自己处理:
def fun( path ):
... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件
... if os.path.isdir( fn ): # 如果结果为文件夹
... fun( fn ) # 递归
... else:
... print fn
...
fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD\a.txt
C:\TDDOWNLOAD\b.txt
C:\TDDOWNLOAD\sub1\c.txt
C:\TDDOWNLOAD\sub1\d.txt
'*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。