使用Selenium WebDriver

时间:2016-10-04 10:21:50

标签: python html selenium xpath

这是html chunk:

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

我想迭代&lt; td&gt; 属性和获取&lt;的索引位置img&gt; 属性。在这种情况下,输出应为“1”

尝试了很多xpath策略,包括index-of(),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)

2 个答案:

答案 0 :(得分:1)

如何识别图像并计算前面的td兄弟并为其添加一个。

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

答案 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