本文目錄一覽:
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
‘*’為匹配模式,代表匹配所有文件,只有這樣才能將子文件夾查出來,以便遞歸深入,探查下一層的文件。
原創文章,作者:VWXB9,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/127788.html