循环穿过硒/python内部的divs循环



我有这个html:

<div class="container">
    <div class="name">James</div>
    <div>Rodriguez</div>
    <div class="image">
        <div><img src="https://example.com/1.jpg"></div>
    </div>
</div>
<div class="container">
    <div class="name">Harry</div>
    <div>Kane</div>
    <div class="image">
        <div><img src="https://example.com/2.jpg"></div>
    </div>
</div>

如何循环遍历所有容器并获得名称,姓氏(第二个Div(和Image URL(IMG SRC(?到目前为止,我想到了:

items = []
containers = driver.find_elements_by_xpath('//div[@class="container"]')
for items in containers:
    name = items.find_element_by_xpath('//div[@class="name"]')
    print(name.text)

这应该给出两个名称。但是,我将"詹姆斯"两次作为输出,而没有"哈利"。

谢谢!

尝试以下解决方案以获取所需值

for item in containers:
    name = item.find_element_by_xpath('.//div[@class="name"]')
    surname = name.find_element_by_xpath('./following-sibling::div')
    image = surname.find_element_by_xpath('./following::img')
    print(name.text, surname.text, image.get_attribute('src'))

使用//时,您是从根节点(<html>(启动搜索。在xpath之前使用.从元素位置启动搜索

for items in containers:
    name = items.find_element_by_xpath('.//div[@class="name"]')
    print(name.text)

最新更新