Selenium 5 css表示式 下篇

2022-05-06 17:42:10 字數 2662 閱讀 3191

本文作者官網 白月黑羽教python

css selector的另乙個強大之處在於: 選擇語法 可以聯合使用

開啟這個**

發布日期:2018-03-03

css selector 表示式 可以這樣寫:

也可以更簡單:

當然 這樣也是可以的:

因為子元素同時也是後代元素

如果我們要 同時選擇所有class 為 plantclass 為 animal 的元素。怎麼辦?

這種情況,css選擇器可以 使用逗號,稱之為 組選擇 ,像這樣

.plant , .animal

再比如,我們要同時選擇所有tag名為div的元素id為byhy的元素,就可以像這樣寫

div,#byhy
對應的selenium**如下

elements = wd.find_elements_by_css_selector('div,#byhy')

for element in elements:

print(element.text)

我們再看乙個例子

開啟這個** 開啟這個**

我們要選擇所有 唐詩裡面的作者和詩名, 也就是選擇所有 id 為 t1 裡面的span 和 p 元素

我們是不是應該這樣寫呢?

#t1 > span,p
不行哦,這樣寫的意思是 選擇所有id 為 t1 裡面的 span所有的 p 元素

只能這樣寫

#t1 > span , #t1 > p

開啟這個**

對應的html如下,關鍵資訊如下

李白

靜夜思杜甫

春夜喜雨

蘇軾赤壁懷古

明月幾時有

江城子·乙卯正月二十日夜記夢

蝶戀花·春景

辛棄疾京口北固亭懷古

青玉案·元夕

西江月·夜行黃沙道中

我們可以指定選擇的元素是父元素的第幾個子節點

使用nth-child

比如,我們要選擇 唐詩 和宋詞 的第乙個 作者,

也就是說 選擇的是 第2個子元素,並且是span型別

所以這樣可以這樣寫span:nth-child(2)

如果你不加節點型別限制,直接這樣寫:nth-child(2)

就是選擇所有位置為第2個的所有元素,不管是什麼型別

也可以反過來, 選擇的是父元素的倒數第幾個子節點,使用nth-last-child

比如:

p:nth-last-child(1)
就是選擇第倒數第1個子元素,並且是p元素

我們可以指定選擇的元素 是父元素的第幾個某型別的子節點

使用nth-of-type

比如,我們要選擇 唐詩 和宋詞 的第乙個 作者,

可以像上面那樣思考:選擇的是 第2個子元素,並且是span型別

所以這樣可以這樣寫span:nth-child(2)

還可以這樣思考,選擇的是第1個span型別的子元素

所以也可以這樣寫span:nth-of-type(1)

當然也可以反過來, 選擇父元素的倒數第幾個某型別的子節點

使用nth-last-of-type

像這樣

p:nth-last-of-type(2)
如果要選擇的是父元素的偶數節點,使用nth-child(even)

比如

p:nth-child(even)
如果要選擇的是父元素的奇數節點,使用nth-child(odd)

p:nth-child(odd)

如果要選擇的是父元素的某型別偶數節點,使用nth-of-type(even)

如果要選擇的是父元素的某型別奇數節點,使用nth-of-type(odd)

上面的例子裡面,我們要選擇 唐詩 和宋詞 的第乙個 作者

還有一種思考方法,就是選擇 h3後面緊跟著的兄弟節點span。

這就是一種 相鄰兄弟 關係,可以這樣寫h3 + span

表示元素 緊跟關係的 是加號

如果要選擇是 選擇 h3後面所有的兄弟節點span,可以這樣寫h3 ~ span

更多css選擇器的介紹,可以參考css 選擇器參考手冊

表示式 使用API建立表示式樹(5)

一 conditionalexpression 表示式 生成如 iif a b a和b相等 a與b不相等 式子。使用 parameterexpression aip1 expression.parameter typeof int a 1 parameterexpression aip2 expre...

第5章 表示式

不想從第一章開始看起,看目錄覺得對第五章中的bitset和sizeof有點興趣,嗯,研究一下。1 if ival ival作為乙個條件表示式,非0時,if條件成立。表示式結果是右值,可讀取結果,不能對它進行賦值。2 短路求值 邏輯與和邏輯或總先計算左運算元。且只在左運算元無法確定結果時,才會求解右運...

5 表示式求值(1)

成績 10開啟時間 2018年10月10日 星期三 20 00 折扣0.8 折扣時間 2018年11月1日 星期四 23 55 允許遲交 否關閉時間 2018年11月11日 星期日 23 55 我們的教材中已經介紹了表示式求值的演算法,現在我們將該演算法的功能進行擴充套件,要求可以處理的運算子包括 ...