Python / Selenium xpath - 查找父/兄弟元素

时间:2018-01-30 03:33:12

标签: python selenium web-scraping

我有以下代码:使用类标记a" keep-product-list-cache"并使用class" promotion-tag grey"标记div。在class =" product-wrapping"下的标签div下面。

我想在课堂上获得数据代码(1017534)" image"在标记a下,来自span class的相对位置="内容tc"在标签div下面加上" promotion-tag grey"。

<div class="product-wrapping">
    <a class="keep-product-list-cache" href="/product/peach-gum-black-sugar-longan-tea-1017534-c2843">
        <div class="image">
            <img src="https://tore.com/images/tore/production/product/160px/1017534_1.jpg?1511440192" data-code="1017534" alt="tea">
                    </div>
    </a>
    <div class="promotion-tag grey">
        <span class="edge"></span>
        <span class="content tc">Sold Out</span>
        <span class="triangle"></span>
    </div>

我已尝试以下方式按父/兄弟位置进行定位,但它不起作用:

id = driver.find_elements_by_xpath('div[@class="promotion-tag grey"]//span[@class="content tc"]/..//preceding-sibling::a//div[@class="image"]//img')

获取属性:id[i].get_attribute("data-code")

但是返回列表的长度&#34; id&#34;是0.有什么想法吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

喔。唯一的错误是你在表达式的开头忘了//

id = driver.find_elements_by_xpath('//div[@class="promotion-tag grey"]//span[@class="content tc"]/..//preceding-sibling::a//div[@class="image"]//img')

答案 1 :(得分:0)

根据HTML在<a>标记下的 1017534 中获取数据代码( 1017534 )来自span {{1}的相对位置在标签div下使用类 promotion-tag grey ,您可以使用以下代码行:

class="content tc"