Posted on 2006-01-08 23:21
canonical 閱讀(614)
評(píng)論(0) 編輯 收藏 所屬分類:
軟件開發(fā)
在無侵入性的前臺(tái)頁面控件設(shè)計(jì)方案中, 我們需要一種簡(jiǎn)便的方法迅速定位頁面中的某一節(jié)點(diǎn)(dom
node). 使用xpath是非常誘人的一個(gè)技術(shù)選擇, 但是在實(shí)際使用中, 我們卻發(fā)現(xiàn)xpath并不是那么方便. xpath的能力非常強(qiáng)大,
它支持絕對(duì)定位, 例如//input[@id='3'], 也支持相對(duì)定位, 例如 ./input[0], 甚至支持根據(jù)節(jié)點(diǎn)內(nèi)容定位,
例如//a[contains(., 'partial text')].
問題是在一個(gè)復(fù)雜的界面控件中, html節(jié)點(diǎn)本身的結(jié)構(gòu)與界面展現(xiàn)結(jié)構(gòu)并不是一致的,例如一個(gè)特定效果的邊框可能需要多個(gè)html元素互相嵌套才能夠?qū)崿F(xiàn), 因此xpath的相對(duì)路徑選擇能力往往派不上用場(chǎng)(除非是提供
http://www.backbase.com/那
樣的界面抽象層), 而根據(jù)內(nèi)容定位的方式過于靈活, 難以維護(hù)一個(gè)穩(wěn)定的概念層. 相比較而言,
css的選擇符所提供的節(jié)點(diǎn)定位方式要比xpath更加簡(jiǎn)單直觀, 它的適用性也早已在大量的實(shí)踐中得到了證實(shí).
基于css選擇符實(shí)現(xiàn)behaviour機(jī)制是一種更加可行的方案. 參見
http://prototype.conio.net/