SeleniumBasic的FindElement共有8個系列方法。其中XPath和CssSelector技巧性最強,其余6種定位方法很直觀簡單。
這節學習使用CssSelector定位一個元素周圍的其他元素。
百度首頁左上角有7個超鏈接,這些超鏈接的父親是id為s-top-left的div,爺爺是id為head的div。
首先簡單地說一下CssSelector的語法
"div#s-top-left>a:nth-child(3)"
CssSelector中使用>表示上下兩級的路徑分隔,#表示指定id屬性,小數點表示指定class。
這行代碼表示id為s-top-left的div中,第3個a標簽。請看代碼:
Dim div As IWebElement
Dim map As IWebElement
Set div = WD.FindElementByCssSelector("div[id='s-top-left']")
Set div = WD.FindElementByCssSelector("div#s-top-left")
Debug.Print div.FindElementByCssSelector("a:first-child").text '新聞
Debug.Print div.FindElementByCssSelector("a:last-child").text
Debug.Print div.FindElementByCssSelector("a:nth-child(3)").text '地圖
Set map = WD.FindElementByCssSelector("div#s-top-left>a:nth-child(3)")
Debug.Print map.text '地圖
Debug.Print div.FindElementByCssSelector("a+a+a+a").text '視頻
上述程序中,使用兩種寫法定位到div,然后找到第n個超鏈接。
這種語法比XPath要晦澀,建議大家看看其他資料。