2014-03-30 12 views
2

我在網頁中有許多行中的鏈接,它們的類名相同。就像這樣:掃描其類名相同的行元素

enter image description here

我能夠使用XPath單擊第一個環節出現,

"(//span[@class='odds black'])" 

不過,我想通過特定的行掃描和點擊每個賠率(如果是當下)。 如何實現這一目標的任何幫助?

注意:我找不到使用其他屬性的元素,因爲它會根據數據動態更改。

的參考源代碼圖片:

enter image description here

+0

您能否在此頁面添加鏈接以查看源代碼的外觀?班級名稱總是'可能性some_color'? –

+0

@pawelmhm是的,它對於同一行中的「整數」總是相同的。請參考網站(www.sbobet.com/euro)......我也編輯了我的問題,以包含完整的源代碼。 – Shan

回答

1

而是以這種格式使用XPath的:

/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[1]/td[5]/a/span[2]/span/span 
"(//span[@class='odds black'])" 

你能在正上方的紅色框所示這種格式使用3210

(你可以通過在螢火蟲中選擇一個元素,右鍵點擊它的代碼並選擇複製XPATH來輕鬆獲得這種格式)。

我發現在很多情況下,我可以添加tr [1]或其他路徑屬性的計數器,以便相當準確地向下移動行。我實在看不出你的網站中的XPath比較之下,但我想這將是這樣的:

/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[1]/td[5]/a/span[2]/span/span 
/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[2]/td[5]/a/span[2]/span/span 
/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[3]/td[5]/a/span[2]/span/span 

那麼你可以添加一個計數器,如「我」

所以你會遍歷在櫃檯循環,並將其設置爲:

"/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr["+str(i)+"]/td[5]/a/span[2]/span/span" 
1

假設類的名字將永遠「的賠率有些顏色」,您可以使用XPath的contains()功能。 Xpath是這樣的:

"//span[contains(@class,'odds')]" 

將返回包含字符串'賠率'在classname中的所有跨度。

0

CSS選擇器是類感知的,所以它對我來說會更有意義;

span.odds

Xpath的治療類作爲一個簡單的字符串,迫使你用「包含」凡爲CSS允許您單獨治療類