2016-10-04 135 views
0

這裏的標籤索引/位置是HTML塊:獲取硒使用文本的webdriver

<tbody> 
<tr> 
    <td><td> 
    <td> 
    <img src="../imgs.gif"> 
    <td> 
    <td><td> 
    <td><td> 
    <td><td> 
</tr> 
</tbody> 

我想遍歷< TD>屬性和並得到< IMG>的索引位置屬性。在這種情況下,輸出應該是「1」

嘗試了很多的XPath策略,包括指數的(),COUNT(),etree等

正如我懷疑,下面應該接近。

from selenium import webdriver 

chrome_path = r"E:\chromedriver_win32\chromedriver.exe" 
browser = webdriver.Chrome(chrome_path) 

td = browser.find_element_by_xpath("//tbody//tr//td") 
target = td.find_element_by_xpath("*[. = '../imgs.gif']") 
children = td.find_elements_by_xpath("*") 
print children.index(target) 
+0

'index-of()'應該可以工作,但是它的索引是1,所以你需要在你的情況下減1。你的結果與索引有什麼關係? –

+0

html = browser.page_source tree = lxml.html.fromstring(html) tree.xpath(「index-of(// tbody // tr // td,//img[.='../imgs.gif '])「) 返回XPathEvalErorr:未註冊的函數 我猜index-of()只能用Xpath 2.0進行編譯 –

回答

1

如何識別圖像並計算前面的td兄弟並添加一個到它。

$x("count(//img/parent::td/preceding-sibling::td) + 1") 
0

嘗試了一些有效的方法。

html = browser.page_source 
    tree = lxml.html.fromstring(html) 
    re = tree.xpath("//tbody//tr//td") 
    for i in range(0, len(re)): 
     res = re[i].xpath(".//img//@src") 
     for img in res: 
      print repr(img) 
      print "img number in list:", i